◈ 기본 연습
1. 두 수를 입력받은 후 작은 수~큰 수 사이의 모든 수의 합을 구하는 프로그램을 작성하시오.
답:
//두 수를 입력받은 후 작은 수~큰 수 사이의 모든 수의 합을 구하는 프로그램 #include <stdio.h> int main(void) { int a, b; int sum; printf("두 개의 정수 입력:"); scanf_s("%d%d", &a, &b); if (a > b)//a가 b보다 크면 { //두 수를 교환 int temp = a; a = b; b = temp; } printf("%d ~ %d =", a, b); for (sum = 0; a <= b; a++) { sum += a; } printf("%d\n", sum); return 0; }
2. 1부터 100 사이에 있는 모든 6의 배수를 출력하는 프로그램을 작성하시오.
답:
//1부터 100 사이에 있는 모든 6의 배수를 출력하는 프로그램 #include <stdio.h> int main(void) { int n; for (n = 1; n <= 100; n++) { if (n % 6 == 0)//6으로 나누어서 나머지가 없으면 { printf("%d ", n); } } printf("\n"); return 0; }
3. 한 자리의 정수를 입력받아 입력받은 수의 단을 출력하는 프로그램을 작성하시오.
예:
한 자리의 정수를 입력하시오.
7
7*1 = 7 7*2 = 14 7*3 = 21
7*4 = 28 7*5 = 35 7*6 = 42
7*7 = 49 7*8 = 56 7*9 = 63
답:
//3. 한 자리의 정수를 입력받아 입력받은 수의 단을 출력하는 프로그램 //예: //한 자리의 정수를 입력하시오. //7 //7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 //7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 //7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 #include <stdio.h> int main(void) { int n; int i; printf("한 자리의 정수를 입력하세요.\n"); scanf_s("%d", &n); if ((n <= 0) || (n> = 10)) { printf("잘못 입력하였습니다."); } else { for (i = 1; i <= 9; i++) { printf("%d*%d= %2d ", n, i, n*i); if (i % 3 == 0) { putchar('\n'); } } } return 0; }
4. 다음을 반복하는 프로그램을 작성하시오.
“I: 추가 D: 삭제 S:검색 L:전체 출력 E:종료”를 화면에 출력
하나의 문자를 입력받음
입력받은 문자가 ‘i’ 혹은 ‘I’일 때는 추가, ‘d’ 혹은 ‘D’일 때는 삭제 , ‘s’ 혹은 ‘S’일 때는 검색, ‘l’,
L’일 때는 전체 출력이라고 화면에 출력
(단, E를 누르면 프로그램을 종료)
답:
//다음을 반복하는 프로그램 //하나의 문자를 입력받아 ‘i’ 혹은 ‘I’일 때는 추가, ‘d’ 혹은 ‘D’일 때는 삭제, //‘s’ 혹은 ‘S’일 때는 검색, ‘l’, ‘L’일 때는 전체 출력이라고 화면에 출력 //단, E를 누르면 프로그램 종료 #include <stdio.h> int main(void) { char key='\0'; while (key!='E') { printf("I:추가 D:삭제 S:검색 L:전체 출력\n"); printf("메뉴 선택:"); scanf_s(" %c", &key, 1); //엔터를 스킵하기 위해 앞에 공백을 포함 switch (key) { case 'i': case 'I': printf("추가\n"); break; case 'd': case 'D': printf("삭제\n"); break; case 's': case 'S': printf("검색\n"); break; case 'l': case 'L': printf("전체 출력\n"); break; case 'E': break; default: printf("잘못 선택하셨네요.\n"); break; } } return 0; }
5. 두 개의 양의 정수를 입력받아 공약수의 합을 계산하는 프로그램을작성하시오.
답:
//두 개의 정수를 입력받아 공약수의 합을 계산 #include <stdio.h> int main(void) { int a, b; int n; int sum=0; printf("두 개의 정수 입력:"); scanf_s("%d%d", &a, &b); if (a > b)//a가 b보다 크면 { //두 수를 교환 int temp = a; a = b; b = temp; } printf("%d와 %d의 공약수:",a,b); for (n = 1; n <= a; n++) { if ((a%n == 0) && (b%n == 0))//n이 a와 b의 약수일 때 { sum += n; printf("%d ", n); } } printf("\n%d와 %d의 공약수의 합:%d\n",a,b, sum); return 0; }
6. 두 개의 양의 정수를 입력받아 공배수를 작은 순서부터 차례대로 10개를 출력하는 프로그램을 작성하시오.
답:
//두 개의 정수를 입력받아 공약수 10개를 차례대로 출력 #include <stdio.h> int main(void) { int a, b; int n; int count = 0; printf("두 개의 정수 입력:"); scanf_s("%d%d", &a, &b); if (a > b)//a가 b보다 크면 { //두 수를 교환 int temp = a; a = b; b = a; } printf("%d와 %d의 공약수를 차례대로 (최대)10개 출력\n", a, b); for (n = 1; (n <= a)&&(count<10); n++) { if ((a%n == 0) && (b%n == 0))//n이 a와 b의 약수일 때 { count++; printf("%d ", n); } } printf("\n"); return 0; }
7. ‘a’문자에서 ‘z’문자 사이의 모든 문자와 아스키 코드 값을 출력하는 프로그램을 작성하시오.
답:
//소문자의 아스키 코드값을 출력 #include <stdio.h> int main(void) { char ch; for (ch = 'a'; ch <= 'z'; ch++) { printf("%c:%d\n", ch, ch); } return 0; }