반응형
문제 출처 : YES C (정보공학연구소/생능출판사)
1. 사용자에게 나이를 입력받아 18세 미만이면 "you are a minor.", 이상이면 "you are not a minor."를 출력하는 프로그램.
#include <stdio.h> int main() { int age; printf("나이를 입력하세요 : "); scanf_s("%d", &age); printf("(age = %d) : %s \n", age, age >= 18 ? "You are not a minor" : "you are a minor"); }
2. 입력받은 숫자가 홀수인지 짝수인지 출력하는 프로그램.
#include <stdio.h> int main() { int num; printf("숫자를 입력하세요 : "); scanf_s("%d", &num); printf("입력하신 %d는 %s입니다. \n", num, num%2 == 0 ? "짝수" : "홀수"); }
3. 입력받은 수가 10이면 1~10, 20이면 11~20, 30이면 21~30까지의 합을 출력하는 프로그램을 switch-case문을 이용해서 작성하라.
#include <stdio.h> int main() { int input, sum = 0; do { printf("10,20,30 중 하나를 입력하세요. : "); scanf_s("%d", &input); if (input % 10 != 0) { printf("잘못 입력하셨습니다. 다시 입력해주세요. \n"); } while (getchar() != '\n'); } while (input % 10 != 0); switch (input) { case 10: for (int i = 1; i <= input; i++) { sum += i; } printf("1부터 10까지의 합은 %d 입니다.", sum); break; case 20: for (int i = 11; i <= input; i++) { sum += i; } printf("11부터 20까지의 합은 %d 입니다.", sum); break; case 30: for (int i = 21; i <= input; i++) { sum += i; } printf("21부터 30까지의 합은 %d 입니다.", sum); break; } return 0; }
4. while문을 이용하여 2의 20승을 구하는 프로그램을 작성하라.
#include <stdio.h> int main() { int n = 1, result = 1; while (n <= 20) { result *= 2; n++; } printf("2의 20승은 %d입니다.", result); }
5. 임의 개의 수를 읽어 들여 최대값과 최소값 및 최대값과 최소값의 차를 구하는 프로그램을 while문을 포함하여 작성하라. (순서도 작성해볼것)
#include <stdio.h> int main() { // ※변수 선언 int num = 1, input, max, min; char conti = 'y'; do { // ※입력받기 printf("%d번째 수를 입력하세요:", num); scanf_s("%d", &input); // ※첫번째로 입력받은 수 일 때 if (num == 1) { max = input; min = input; } else if (num >= 2) { // ※첫번째로 입력받은 수가 아닐 때 input > max ? max = input : 0; input < min ? min = input : 0; do { while (getchar() != '\n'); //계속 입력받을지 확인 printf("계속 입력하시겠습니까? (y,n)"); scanf_s("%c", &conti, sizeof(char)); if (conti != 'Y' && conti != 'y' && conti != 'N' && conti != 'n') { printf("잘못 입력하셨습니다. \n"); } } while (conti != 'Y' && conti != 'y' && conti != 'N' && conti != 'n'); } num++; } while (conti == 'y' || conti == 'Y'); printf("입력하신 수 중 가장 큰 수는 %d, 가장 작은 수는 %d, 두 수의 차이는 %d 입니다. \n", max, min, max - min); return 0; }
6. -1^2+2^2-3^2+... + 100^2의 합을 구하는 프로그램을 while문을 이용하여 작성하라. (순서도 작성해볼것)
#include <stdio.h> int main() { int i = 1, line = 0, sum = 0; while (i <= 100) { if(i%2 == 0) { sum += i*i; printf(" +%5d", i*i); } else { sum -= i * i; printf(" -%5d", i*i); } i++; line++; if (line == 10) { line = 0; printf("\n"); } } printf(" = %d 입니다. \n", sum); }
7. while문을 이용하여 -50에서 1까지의 수를 출력하는 프로그램을 작성하라.
(한줄에 5개씩 표시하고 수와 수 사이는 탭만큼 띄워라)
#include <stdio.h> int main() { int i = -50, line = 0; while (i <= 1) { printf("%d\t",i); line++; if (line == 5) { line = 0; printf("\n"); } i++; } }
8. 100부터 1까지의 수 중에서 짝수만을 출력하는 프로그램을 for문을 이용해 작성하라.
#include <stdio.h> int main() { int line = 0; for (int i = 100; i > 0; i--) { if (i % 2 == 0) { printf("%3d\t", i); line++; } if (line == 10) { line = 0; printf("\n"); } } }
반응형