일부러 천천히 공부하면서 언어 공부준비하려고 일부로 이론위주로 수업 신청햇는데
착하신 교수님께서 씨언어로 프로그램 작성하는걸 숙제로 내주셧네
문제도 어려운게 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진수로 변경하는 코드는 못구햇네....-----
형들 이 불쌍한 복학생 좀 살려주면 안댈까..?
너무 염치 없는 부탁인데 도와주면 안댈까?
scanf("%d",&num); printf("%o",num); 이러면 16진수로 출력됨
아 2진수 입력이구나
이게 변환 과정이 잇어야해..코드에 ㅠ
scanf("%b",&num); 출력은 내가 쓴것처럼
? 저거면 그냥 변환됨
포문 꼭돌리라고 했냐
그렇게 입력받아서 바로 출력하면 좋긴한데 그러면 안대고 포문 이용해서 변환 공식을 넣어야해.ㅠㅠ
귀찮다 내일해줄게
이거..내일까진데..ㅠ 혼자서 해보려 하는데 계속 이상한 값이 떠 ㅠ