C언어 HW 04

|


[ hw04 ]


---------------------------------------------------------------------


#1


#include <stdio.h>


int main()

{

float a1, a2, b1, b2, c1, c2;


while(1)

{

printf("a1x + b1y = c1\na2x + b2y = c2\n");

printf("위 식들의 계수를 각각 입력하세요.(a1, b1, c1, a2, b2, c2)");

scanf("%f, %f, %f, %f, %f, %f", &a1, &b1, &c1, &a2, &b2, &c2);


if (a1 == 0 && a2 == 0)

printf("a1 과 a2 모두 0일 수 없습니다. 다시 입력하세요.");

else if (b1 == 0 && b2 == 0)

printf("b1 과 b2 모두 0일 수 없습니다. 다시 입력하세요.");

else

break;

}


/*


x 1 b2 -b1 c1                 // 행렬식으로 계산 중

y a1b2-a2b1      -a2   a1 c2


1 b2c1-b1c2

a1b2-a2b1     a1c2-a2c1



*/



printf("x, y = %f, %f", ((b2*c1)-(b1*c2))/((a1*b2)-(a2*b1)),  ((a1*c2)-(a2*c1))/((a1*b2)-(a2*b1)));

                                    // 한번에 코딩한 것은 자랑.ㅋㅋ


return 0;

}


---------------------------------------------------------------------


#2

#include <stdio.h>


int main()

{

int op;

float x, y;                // 근데 다른 이전의 문제에선 정수로 받아서 결과만 실수로 내주면 되는 것 같더니.. 이번엔 안된다.


printf("계산할 연산을 입력하세요.\n(1 : +,  2 : -, 3 : *, 4 : /) : ");

scanf("%d", &op);

printf("계산할 두 정수를 입력하세요 : ");

scanf("%f, %f", &x, &y);


switch(op)

{

case 1 : printf("'+' 연산의 결과값 : %0.0f\n", x+y); break;      // op를 char 형식으로 받고 case '+' 이런 식으로 하고싶었는데

case 2 : printf("'-' 연산의 결과값 : %0.0f\n", x-y); break;       // 안되는 듯함. 문자로 받아서 하는 방법은 없나요?

case 3 : printf("'*' 연산의 결과값 : %0.0f\n", x*y); break;

case 4 : while(1)                          // case 문에다가 while 문을 넣어보고 싶었음.

{

if (y == 0)

{

printf("/ 연산에서는 y(젯수)가 0이 될 수 없습니다. y의 값을 다시 입력하세요. : ");

scanf("%f", &y);

}

else

{

printf("'/' 연산의 결과값 : %f\n", x/y);

break;

}

} break;

}

return 0;

}



---------------------------------------------------------------------


#3


#include <stdio.h>


int main()

{

int a, b, c, max;


printf("3개의 정수값을 입력하세요(a, b, c) : ");

scanf("%d, %d, %d", &a, &b, &c);


if (a > b)

{

if (a > c)

max = a;

else

max = c;

}

else

{

if (b > c)

max = b;

else

max = c;

}


a = max % 2;          // max 값에 이미 최대값이 들어가있기 때문에 이미 사용된 a 를 이용


if (a == 0)

printf("%d는 짝수입니다.\n", max);

else

printf("%d는 홀수입니다.\n", max);

return 0;

}




'Study > C언어' 카테고리의 다른 글

C언어 HW 06  (0) 2015.03.27
C언어 HW 05  (0) 2015.03.27
C언어 HW 03  (0) 2015.03.27
C언어 HW 02  (0) 2015.03.27
C언어 HW 01  (0) 2015.03.27
And


C언어 HW 03

|


[ hw03 ]


---------------------------------------------------------------------


#1


#include <stdio.h>


int main(){

int age;


while(1)

{

printf("나이를 입력하시오 : ");

scanf("%d", &age);


if (age >= 0)

break;

printf("나이를 잘못 입력하셨습니다. 다시 입력 해 주세요.\n");      // 사실 문제에선 그리 요구하는 필수사항은 아니었지만..ㅎㅎ

}


if (age < 8 || age >59)                                   // 어떻게 하면 더 효과적으로 if 및 else를 사용할 수 있을까?

printf("입장료는 무료입니다.\n");

else if (age < 20)

printf("입장료는 2,000원 입니다.\n");

else

printf("입장료는 3,000원 입니다.\n");

return 0;


}



---------------------------------------------------------------------


#2


#include <stdio.h>


int main(){

char c;


printf("한 문자를 입력하시오 : ");

scanf("%c", &c);


if (48 <= c && c <=57)

printf("숫자 입니다.\n");

else if (65 <= c && c <= 90)

printf("%c", c+32);

else if (97 <= c && c <= 122)

printf("%c", c-32);

else

printf("영문자나 숫자가 아닙니다");

return 0;


}


---------------------------------------------------------------------


#3


#include <stdio.h>


int main(){

int year;


printf("연도를 입력하시면 그 해가 윤년인지 아닌지 알려드립니다.\n연도를 입력하시오 : ");

scanf("%d", &year);


if (year % 400 == 0)

printf("%d년은 윤년입니다.\n", year);

else if (year % 100 == 0)

printf("%d년은 평년입니다.\n", year);

else if (year % 4 == 0)

printf("%d년은 윤년입니다.\n", year);

else

printf("%d년은 평년입니다.\n", year);

return 0;


}


---------------------------------------------------------------------


#4


#include <stdio.h>


int main(){

int a, b;


while(1)

{

printf("서로 다른 두 숫자를 입력하시오 (a, b) : ");

scanf("%d, %d", &a, &b);

if (a!=b)

break;

else

printf("다시 입력하시오.\n");           // 조건에서 서로 다른걸 입력하랬는데 그걸 또 검사하는 나란 놈은..ㅋㅋ

}


if (a>b)

printf("%d\n", a);

else

printf("%d\n", b);

return 0;


}



---------------------------------------------------------------------



#5



#include <stdio.h>


int main(){

int grade;


printf("학년에 따른 등록금 안내 해드립니다. 몇학년 이세요? : ");

scanf("%d", &grade);


switch(grade)

{

case 1 : printf("300만원\n"); break;              // 근데 왜 break; 까지 엔터 치면 칸이 이쁘게 안나올까..? 결과는 맞는데.ㅎㅎ

case 2 : printf("250만원\n"); break;

case 3 : printf("250만원\n"); break;

case 4 : printf("200만원\n"); break;

default : printf("그런 학년은 없습니다.\n");    // default 라 함은 else와 같은 맥락~

}

return 0;


}


---------------------------------------------------------------------


#6


#include <stdio.h>


int main(){

int no;

float kw;


printf("사용 전력랑(Kw)를 입력하세요 : ");

scanf("%f", &kw);


while(1)

{

printf("코드번호를 입력하세요. (가정용은 1, 산업용은 2, 교육용은 3 입니다.) : ");

scanf("%d", &no);


if(no == 1 || no == 2 || no == 3)

break;

else

printf("코드번호를 잘못 입력하셨습니다. 다시 입력하세요.\n");

}


switch(no)

{

case 1 : printf("%0.1f원 입니다.\n", kw*127.8+1130); break;

case 2 : printf("%0.1f원 입니다.\n", kw*88.5+660); break;

case 3 : printf("%0.1f원 입니다.\n", kw*52.0+370); break;

}

return 0;


}


---------------------------------------------------------------------




'Study > C언어' 카테고리의 다른 글

C언어 HW 06  (0) 2015.03.27
C언어 HW 05  (0) 2015.03.27
C언어 HW 04  (0) 2015.03.27
C언어 HW 02  (0) 2015.03.27
C언어 HW 01  (0) 2015.03.27
And


C언어 HW 02

|


[ hw02 ]


---------------------------------------------------------------------


#1


#include <stdio.h>

#include <stdlib.h>


int main(){


int age;

char *location, *blood, *name;


location = (char *)malloc(sizeof(char) * 10);    // 기억이 나지 않아 살짝 구글링 했지.. 

blood = (char *)malloc(sizeof(char) * 10);       // 근데 이렇게 말고 진짜로.. 내가 입력받는 만큼 생성하는 것은 없나?

name = (char *)malloc(sizeof(char) * 10);

printf("당신이 사는 곳은?   ");

scanf("%s", location);

printf("당신의 혈액형은?   ");

scanf("%s", blood);

printf("당신의 나이는?   ");

scanf("%d", &age);

printf("당신의 이름은?   ");

scanf("%s", name);

printf("아하, 당신은 %s에 사는 %d살의 %s이라는 분이군요! 혈액형은 %s.\n", location, age, name, blood);


free(location);                // free로 메모리 없애주기

free(blood);

free(name);


return 0;


}


---------------------------------------------------------------------


#2


#include <stdio.h>


int main(){


float second;


printf("10km/h로 달리는 철수가 달린 초(second)를 입력하면 뛴 거리(km)를 계산하는 프로그램 입니다.\n철수가 달린 초(second) : ");

scanf("%f", &second);


// 10km/h -> 10/60/60 km/s          // 1초에 몇키로를 가는지 계산하는 중..ㅋㅋ


printf("철수가 뛴 거리(km) : %0.3f\n", ((second*10)/60)/60);      // 1초에 몇키로를 가는지만 알면 거기에 시간을 곱하면 된다.


return 0;


}


---------------------------------------------------------------------


#3


#include <stdio.h>


int main(){


int minute, day, hour;


printf("분(min)을 입력하세요 : ");

scanf("%d", &minute);


day = minute/(24*60);                       // day는 int 형이기 때문에 나누면 정수만 입력된다. 즉 몇일인지가 day 입력 된다.

minute = minute - (day*24*60);           // 그리고 입력된 분에서 day 대한 분만큼 뺀다.

hour = minute/60;                            // 그리고 같은 원리로 시간이 int형이니 초로 나눠서 시간을 만든다.

minute = minute -(hour*60);                // 역시나 같은 원리~


printf("%d 일  %d 시간  %d 분\n", day, hour, minute);


return 0;


}



---------------------------------------------------------------------


#4


#include <stdio.h>


int main(){


float time;

int hour, minute, second;


printf("시간을 입력하세요 : ");

scanf("%f", &time);


hour = time;

time = time - hour;             // time은 실수, hour은 정수이므로 소수부분만 time에 다시 입력되겠지..ㅎㅎ

minute = time * 60;            // 그리곤 거기에 60을 곱해서 다시 int형인 분으로 넣으면 몇분인지 정수만 또 나온다.


// 1분 = 60초


second = ((time * 60) - minute)*60;     // 여기선 다시 분에 대한 소수점만 나오게 한다음 60을 곱해서 몇초인지 구함


printf("%d시간 %d분 %d초\n", hour, minute, second);

return 0;


}



---------------------------------------------------------------------


#5


#include <stdio.h>


int main(){


float time;

int day, hour, minute, second;


printf("일 수를 입력하세요 : ");

scanf("%f", &time);


day = time;


time = time - day;                                 // 이것도 위에랑 비슷~ 소수부분만 남기는 스킬을 활용했다.

//0.xx 일 남음 & 1일 = 24시간               // 근데 알고보니 뭐 시간에 관련된 함수 있는거 아님..? ㅋㅋㅋㅋㅋ

hour = time * 24;


time = (time * 24) - hour;

// 0.xx 시간 남음 & 1시간 = 60분

minute = time * 60;              // 1시간이 60분이니 시간을 나타낸 소수점에 60을 곱하면 소수점이 몇분인지 나온다.


time = (time * 60) - minute; 

//0.xx 분 남음 & 1분 = 60초

second = time * 60;             // 위에랑 같은 원리



printf("%d일 %2d시간 %2d분 %2d초\n", day, hour, minute, second);

return 0;


}



---------------------------------------------------------------------


#6


#include <stdio.h>


int main(){


printf("char             : %d 바이트\n", sizeof(char));            // 각각의 형이 몇바이트인지 알기 위함임.

printf("short            : %d 바이트\n", sizeof(short));

printf("int              : %d 바이트\n", sizeof(int));

printf("long             : %d 바이트\n", sizeof(long));

printf("float            : %d 바이트\n", sizeof(float));

printf("double           : %d 바이트\n", sizeof(double));

printf("long double      : %d 바이트\n", sizeof(long double));

return 0;


}



---------------------------------------------------------------------


#7


#include <stdio.h>


int main(){


int kor, eng, math;


printf("각각의 점수를 입력하시오(국어, 영어, 수학) :  ");

scanf("%d, %d, %d", &kor, &eng, &math);


printf(" ==================================================\n");

printf("│  국어  │  영어  │  수학  │  총점  │  평균  │\n");

printf(" ==================================================\n");

printf("│     %2d │     %2d │     %2d │    %3d │   %0.2f │\n", kor, eng, math, kor+eng+math, (kor+eng+math)/3);

printf(" ==================================================\n");

return 0;            // 여기서 다시 공부. int 형으로 받아도 실수가 발생할 때만 출력을 실수로 하면 된다.


}



---------------------------------------------------------------------


#8


#include <stdio.h>


int main(){


printf("C에서 주석문을 넣는 방법에는 %c%c %c%c %c%c과  %c%c %c%c%c 등이 있다.\n:", 47, 42, 126, 126, 42, 47, 47, 47, 126, 126, 126 );                 // ' // '  나  /*   */  때문에 해당 기호에 대한 아스키코드를 썼는데... 일부만 써도 될껄 그랬다는 생각이 든다..ㅎㅎ

printf("줄을 바꾸려면 특수문자 %cn을 출력하면 된다.\n", 92);

printf("C에서 문자열 상수는 %c %c%c %c로, 문자상수는 %c%c%c로 표시한다.\n", 34, 126, 126, 34, 39, 126, 39);

return 0;


}



---------------------------------------------------------------------


#9



#include <stdio.h>


int main(){


int speed;

float hour, minute, second;


printf("시속(km/h) : ");

scanf("%d", &speed);

printf("운전시간(시, 분, 초) : ");

scanf("%f, %f, %f", &hour, &minute, &second);


//1시간에 120km, 1분에 2km, 1초에 2/60 km)     // 각 시간 단위당 몇키로 갔는지 계산 함


printf("\n달린 거리(km) : %0.2f\n", (120*hour)+(2*minute)+(second/30));

return 0;


}



'Study > C언어' 카테고리의 다른 글

C언어 HW 06  (0) 2015.03.27
C언어 HW 05  (0) 2015.03.27
C언어 HW 04  (0) 2015.03.27
C언어 HW 03  (0) 2015.03.27
C언어 HW 01  (0) 2015.03.27
And