반응형
문제 출처 : YES C (정보공학연구소/생능출판사)
1. 정수 n을 scanf_s()를 통해 읽어 들여 n이 음수가 아니면 0부터 n까지의 정수를 합산하고, n이 음수이면 n부터 0까지를 합산하는 프로그램.
#include <stdio.h> int main() { int n, sum = 0; printf("하나의 정수를 입력하세요.: "); scanf_s("%d", &n); if (n >= 0) { for (int i = 0; i <= n; i++) { sum += i; } printf("0부터 %d까지의 합은 %d입니다. \n", n, sum); } else { for (int i = n; i <= 0; i++) { sum += i; } printf("%d부터 0까지의 합은 %d입니다. \n", n, sum); } }
2. 두 수를 입력받아 그 사잇값의 합을 출력하고, 합이 천 미만이 될 때까지의 수들과 그 결과를 출력하는 프로그램을 작성하라.
#include <stdio.h> int main() { int input1, input2, sum = 0, m_sum = 0, line = 0; char ch = 'y'; do { printf("첫번째 정수를 입력하세요. :"); scanf_s("%d", &input1); printf("두번째 정수를 입력하세요. :"); scanf_s("%d", &input2); if (input1 > input2) { input1 ^= input2; input2 ^= input1; input1 ^= input2; } for (int i = input1; i <= input2; i++) { sum += i; m_sum += i; printf("%d",i); if (m_sum + i + 1 > 1000) { printf(" = %d \n", m_sum); m_sum = 0; line = 0; } else { printf(" + "); } if (line == 5) { line = 0; printf("\n"); } } printf("\n%d부터 %d 사이의 정수의 총합은 %d입니다. \n", input1, input2, sum); while (getchar() != '\n') {} printf("계속 하시려면 y나 Y를 입력하세요. \n"); scanf_s("%c", &ch, sizeof(char)); } while (ch == 'y' || ch == 'Y'); }
3. 두 개의 정수를 입력받아 최대공약수를 출력하는 프로그램을 while문을 이용하여 작성하라.
#include <stdio.h> int main() { int a, b, divide = 1, gcd = 1; printf("첫번째 정수를 입력하세요."); scanf_s("%d", &a); printf("두번째 정수를 입력하세요."); scanf_s("%d", &b); while (1) { if (a%divide == 0 && b%divide == 0) { gcd = divide; } if (divide >= a || divide >= b) { break; } divide++; } printf("%d와 %d의 최대공약수는 %d입니다. \n", a, b, gcd); }
반응형