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

C언어 연습문제 풀이 CH9 (1~5)

라이피 (Lypi) 2018. 5. 29. 22:46
반응형

1. 학생의 학번과 국어,영어,수학 점수를 저장할 수 있는 구조체를 만들고, 각 학생의 평균 점수를 출력하는 함수를 작성하라.

#include <stdio.h>

struct score {
	int id;
	int korean;
	int eneglish;
	int math;
};

double avr(score* sp);

int main()
{
	score student[5];

	for (int i = 0; i < 5; i++) {
		printf("%d번째 학생의 학번을 입력하세요 :", i + 1); scanf_s("%d", &(student[i].id));
		printf("%d번째 학생의 국어 점수를 입력하세요 : ", i+1); scanf_s("%d", &(student[i].korean));
		printf("%d번째 학생의 영어 점수를 입력하세요 : ", i+1); scanf_s("%d", &(student[i].eneglish));
		printf("%d번째 학생의 수학 점수를 입력하세요 : ", i+1); scanf_s("%d", &(student[i].math));
		printf("\n");
	}

	for (int i = 0; i < 5; i++) {
		printf("%d번째 학생의 평균은 %g 입니다. \n", i + 1, avr(&student[i]));
	}
}

double avr(score* sp) {
	double avr = (sp->eneglish + sp->korean + sp->math) / 3.0;
	return avr;
}


2. 입력된 시간을 12시간제와 24시간제로 출력하는 프로그램을 구조체를 이용하여 작성하라.

#include <stdio.h>

struct time {
	int time_12;
	int time_24;
	int minute;
};

int main()
{
	double t;
	time clock;

	printf("시간을 입력하세요 : "); scanf_s("%lf", &t);

	clock.time_12 = (int)t % 12;
	clock.time_24 = (int)t % 24;
	clock.minute = (int)((t - (int)t) * 60);

	printf("입력하신 시간은 \n");
	printf("12시간짜리 시계로는 '%2d시 %2d분'이고 \n",clock.time_12, clock.minute);
	printf("24시간짜리 시계로는 '%2d시 %2d분'입니다. \n",clock.time_24, clock.minute);
	
}

3. 가족의 이름과 나이 및 성별을 출력하는 프로그램을 구조체를 이용하여 작성하라.
#include <stdio.h>

struct member {
	char name[10];
	char sex[5];
	int age;
};

int main()
{
	member* fm;
	int num;

	printf("가족수를 입력하세요 : "); scanf_s("%d", &num);

	fm = (member*)malloc(sizeof(member)*num);

	for (int i = 0; i < num; i++) {
		printf("%d번째 사람의 이름을 입력하세요 : ", i + 1); scanf_s("%s", fm[i].name, 10);
		printf("%d번째 사람의 성별을 입력하세요 : ", i + 1); scanf_s("%s", fm[i].sex, 5);
		printf("%d번째 사람의 나이를 입력하세요 : ", i + 1); scanf_s("%d", &(fm[i].age));
		printf("\n");
	}

	for (int i = 0; i < num; i++) {
		printf("%d번째 사람의 이름은 %s 입니다. \n", i + 1, fm[i].name);
		printf("%d번째 사람의 성별은 %s 입니다. \n", i + 1, fm[i].sex);
		printf("%d번째 사람의 나이는 %d 입니다. \n", i + 1, fm[i].age);
	}

	free(fm);
}


4.  다음의 프로그램을 컴파일한 후 실행결과를 확인하고 프로그램을 분석하라.

#include <stdio.h>

struct ex1 {
	char char1;
	int integer1;
	float float1;
};

int main()
{
	ex1 x1;

	x1.char1 = '1';
	x1.integer1 = 2;
	x1.float1 = 3;

	printf("test... x1.char1 -> %c \n", x1.char1);
	printf("test... x1.integer1 -> %d \n", x1.integer1);
	printf("test... x1.float1 -> %f \n", x1.float1);
	
}


5. 10명의 이름과 전화번호를 저장하는 구조체 배열을 만들어 값을 저장한 후, 이름으로 검색하면 전화번호를 출력하는 프로그램을 작성하라.

#include <stdio.h>
#include <string.h>

struct TD {
	char name[10];
	char phone_number[15];
};

int main()
{
	const int N = 10;

	TD tds[N];

	for (int i = 0; i < N; i++) {
		printf("%2d번째 사람의 이름을 입력하세요 : ", i+1); scanf_s("%s", tds[i].name, 10);
		printf("%2d번째 사람의 전화번호를 입력하세요 :", i+1); scanf_s("%s", tds[i].phone_number, 15);
		printf("\n");
	}

	char name[10];

	printf("검색할 이름을 입력하세요 : "); scanf_s("%s", name, 10);

	for (int i = 0; i < N; i++) {
		if (!(strncmp(tds[i].name, name, 10))) {
			printf("이름 : %s \t 전화번호: %s \n", tds[i].name, tds[i].phone_number);
		}
	}
}


반응형