학교 수업/1-1, 1-2 코딩 기초 (파이썬, C)

[C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 6주차

70825 2020. 10. 5. 17:35
반응형

CHAPTER 7 연습문제, CHAPTER 8 추가 문제

 

챕터 7 8번

#include <stdio.h>
#include <math.h>

int main()
{
	int x[6], n = 5;
	double m = 0, ans = 0;

	for (int i = 0; i < 5; i++)
	{
		printf("x[%d] = ", i);
		scanf_s("%d", &x[i]);
		m += x[i];
	}
	
	m /= 5;

	for (int i = 0; i < 5; i++)
	{
		ans += pow(x[i] - m, 2) / n;
	}
	
	printf("\n평균: %.1lf\n", m);
	printf("\n표준편차: %.1lf", pow(ans,0.5));
	
	return 0;
}

 

챕터 7 9번

#include <stdio.h>
#define SWAP(x,y) (x=x^y, y=x^y, x=x^y)

int main()
{
	int freeze[11];

	for (int i = 0; i < 10; i++) {
		printf("%d번째 온도: ",i+1);
		scanf_s("%d", &freeze[i]);
	}

	for(int i=0; i<10; i++)
	{
		for(int j=i+1; j<10; j++)
		{
			if(freeze[i]>freeze[j]) SWAP(freeze[i],freeze[j]);
		}
	}

	printf("\n어는 점 목록: ");
	for(int i=0; i<10; i++){
		printf("%d ", freeze[i]);
	}
	printf("\n가장 높은 어는 점: freeze[9] = %d", freeze[9]);

	return 0;
}

 

챕터7 12번

학생 수 4명, 문제 수 5개로 줄임

출력형태, STUDENT, N, paper, answer, num을 고치면 학생 10명, 문제 10개로 수정 가능함

#include <stdio.h>
#define SWAP(x,y) (x=x^y,y=x^y,x=x^y)
#define STUDENT 5
#define N 6


int main()
{
	int paper[STUDENT][N] = {
		{1,3,2,3,4},{1,2,2,2,4},
		{4,3,2,3,4},{1,3,2,2,4}
	};

	int answer[N] = { 1,3,2,3,4};

	int num[N] = { 1,2,3,4,5};
	int score[N] = { 0 };
	int res[STUDENT][N] = { 0 };

	for (int i = 0; i < N-1; i++)
		for (int j = 0; j < N-1; j++)
			if (paper[i][j] == answer[j])
			{
				res[i][j] = 1;
				score[i] += 1;
			}
	
	printf("\n  ■ 문항별 채점 결과 ■\n");
	printf("=============================\n");
	printf(" 문항   0  1  2  3  4   점수\n");
	printf("=============================\n");
	for (int i = 0; i < N-1; i++)
	{
		(i != 9) ? printf(" %d번    ", i + 1) : printf(" %d번   ",i+1);
		for (int j = 0; j < N-1; j++)
			(res[i][j]) ? printf("O  ") : printf("X  ");
		(score[i] != 10) ? printf(" %d점\n", score[i]) : printf("%d점\n", score[i]);
	}
	printf("=============================\n\n\n");

	for(int i = 0; i< N-1; i++)
		for (int j = i + 1; j < N-1; j++)
			if (score[i] > score[j] || (score[i] == score[j] && i < j))
			{
				SWAP(score[i], score[j]);
				SWAP(num[i], num[j]);
			}

	printf("   ■ 정렬 및 석차 ■\n");
	printf("  ====================\n");
	printf("    번호  점수  석차\n");
	printf("  ====================\n");
	
	for (int i = N-2; i >= 0; i--)
		printf("     %d번   %d점   %d등\n", num[i], score[i], N - 1 - i);

	return 0;
}

 

챕터8

두 정수를 입력받아 각각을 제곱한 값의 합계를 구하는 프로그램을 작성하시오.

p.321처럼 함수를 먼저 만들거나,p.324처럼 먼저 함수 원형을 선언하고 나중에 함수를 만들기

이 두가지 방법으로 각각 작성

 

p.321

#include <stdio.h>

int square(int x, int y)
{
	x = x * x;
	y = y * y;

	return x + y;
}

int main()
{
	int a, b;

	printf("두 정수를 입력: ");
	scanf_s("%d %d", &a, &b);

	printf("\n제곱한 값의 합계 = %d\n", square(a, b));

	return 0;
}

p.324

#include <stdio.h>

int square(int x, int y);

int main()
{
	int a, b;

	printf("두 정수를 입력: ");
	scanf_s("%d %d", &a, &b);

	printf("\n제곱한 값의 합계 = %d\n", square(a, b));

	return 0;
}

int square(int x, int y)
{
	x = x * x;
	y = y * y;

	return x + y;
}
반응형