연재 완료/C Lang 예제코드 모음

C언어 배열 주요예제 1

라이피 (Lypi) 2018. 5. 12. 12:40
반응형

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);
	}
}


반응형