반응형
1. 입력된 수들 가운데 특정 범위에 포함되는 수가 몇 개인지 빈도수를 구하는 프로그램.
#include <stdio.h> int main() { int ia[10] = { 0, }; int i; printf("0에서 99사이의 값을 입력하시오. 그 이외의 값이면 종료합니다. \n"); scanf_s("%d", &i); while (i >= 0 && i <= 99) { ++ia[i / 10]; scanf_s("%d", &i); } printf("\n 발생 빈도수 \n"); for (i = 0; i < 10; i++) { printf("%2d ~ %2d : %3d \n", i * 10, (i + 1) * 10 - 1, ia[i]); } }
2. N개의 정수를 입력받아 오름차순으로 정렬하는 프로그램.
#include <stdio.h> int main() { static int data[100]; int i, j, N; printf("입력할 데이터의 개수를 100개 이하로 입력하세요 : "); scanf_s("%d", &N); while (N > 100) { printf("입력하신 범위가 너무 큽니다. 100개 이하로 입력해주세요\n"); printf("입력할 데이터의 개수를 100개 이하로 입력하세요 : "); scanf_s("%d", &N); } for (i = 0; i < N; i++) { printf("%d번째 데이터를 입력하세요. : ", i + 1); scanf_s("%d", &data[i]); } //data[i]와 data[i+1]의 크기를 비교해서 data[i]가 크면 교체. 가장 기본적인 정렬 알고리즘. for (i = 0; i < N - 1; i++) { for (j = i + 1; j < N; j++) { if (data[i] > data[j]) { //xor스왑 data[i] ^= data[j]; data[j] ^= data[i]; data[i] ^= data[j]; } } } printf("정렬된 데이터 : \n"); for (i = 0; i <= N - 1; i++) { printf("%10d", data[i]); if ((i + 1) % 5 == 0) { printf("\n"); } } }
3. 데이터를 읽어 그 중 가장 긴 라인의 길이와 그 라인 전체를 출력하는 프로그램.
#include <stdio.h> int main() { char data[250]; // 데이터를 입력받을 배열 char mem_data[250]; //입력받은 데이터 중 가장 긴 데이터를 저장할 배열 int max = 0; int l, i; while (1) { printf("문장을 입력하세요 (입력 중단은 ctrl + z): "); l = 0; //데이터 입력받기 while (1) { data[l] = getchar(); //입력받은 데이터가 '\n'이거나 EOF이면 입력중지 if (data[l] == '\n' || data[l] == EOF) { break; } l++; } //ㅣ값이 현재 max보다 클 때 if (l > max) { //mem_data[]에 현재 data[]값 복사 for (i = 0; i <= l; i++) { mem_data[i] = data[i]; } max = l; } if (data[l] == EOF) { break; } } //입력받기 끝 //입력받은 데이터가 없으면 if (max == 0) { printf("입력하신 데이터가 없습니다. \n"); } else { printf("가장 긴 줄은 : "); for (i = 0; i <= max - 1; i++) { putchar(mem_data[i]); } printf("\n 길이 : %d \n", max); } }
반응형