일부러 천천히 공부하면서 언어 공부준비하려고 일부로 이론위주로 수업 신청햇는데


착하신 교수님께서 씨언어로 프로그램 작성하는걸 숙제로 내주셧네


문제도 어려운게 1


0진수 입력받아서 2진수로 변환하고 출력


그 2진수를 다시 그레이 코드로 변환후 출력


그걸 다시 2진수로 변환하여 출력


그걸 다시 받아서 16진수로 출력


그후에 컨트롤 제트로 빠져나가는건데


인터넷으로 재료들은 다 구햇는데


조합이안대 에러만 뜨구..


살려줄 형없을까?


----------이게 10진수 받아서 2진수 변경코드구------------

#include <stdio.h>


int main()

{

int i,j; 

int result[20]; 

int num;


printf("십진수를 이진수로 변환하는 프로그램\n");

printf("숫자를 입력하세요 : "); 

scanf("%d",&num);


// 10진수를 2진수로 변환

for(i=0; num>0 ; i++)

{

result[i]=num%2;

num=num/2;

}


printf("변환 결과\n");

// 역순으로 출력

for(j=i-1; j>=0; j--)

{

printf(" %d",result[j]);

}

printf("\n");


return 0;

}


----------이게  2진수를 그레이 코드로 변경 코드-------------

#include <stdio.h>
void main()
{
 int i, gray[4];
 char bin[5]; // 문자로 받으면 뒤에 +1 시켜야 하니까 4+1
 //gray[4] -> 출력될 그레이코드
 //bin[5] -> 입력받을 이진수코드
 printf("2진수 : ");
 scanf("%s", bin);
 //%s 문자!!
 //bin -> 배열의 이름만 나오면 시작하는 위치의 주소 
 for(i=0; i<4; i++)
  bin[i] = bin[i] - 48;
 //문자와 숫자의 표현상의 차이가 10진수로 48
 gray[0]=bin[0];
 for(i=1; i<4; i++)
 {
  gray[i]=bin[i-1]+bin[i];
  if(gray[i]==2)
   gray[i]=0;
 }
 printf("Gray : ");
 for(i=0; i<4; i++)
  printf("%d", gray[i]);
}

------------이게 그레이를 다시 2진수로 변경하는 코드-----------


#include <stdio.h>
#include <string.h>

 

int main(void)
{
    char input[100]; //입력받는 최대길이를 100으로 함.
    char result[100]; //결과저장
    int i;

 

    printf("그레이코드를 입력하세요: ");
    scanf("%s", input);
    result[0] = input[0];   /* 처음 것은 그대로 출력한다. */
    printf("2진수는 %d", result[0] - '0');
    for (i = 1; i < (int)strlen(input); i++) { /* 그 다음부터는 현재와 전의 것을 XOR해서 출력한다. */
        if ((input[i] - '0') ^ result[i - 1]) result[i] = 1;
        else result[i] = 0;
    }
    for (i = 1; i < (int)strlen(input); i++) {

        printf("%d", result[i]);
    }
    printf("\n");

    return 0;
}


-----------이게 2진수를 16진수로 변경하는 코드는 못구햇네....-----


형들 이 불쌍한 복학생 좀 살려주면 안댈까..?