ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 6주차
    학교 수업/1-1, 1-2 코딩 기초 (파이썬, C) 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;
    }
    반응형

    댓글

Designed by Tistory.