편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.06.15

    c언어 소스코드 질문합니다.


    #pragma warning(disable : 4996)
    #include <stdio.h>
    #include <string.h>
    
    //학생 수
    #define N 10
    
    int main()
    {
        char name[N][20], str[20];
        //국, 영, 수, 총점으로 4개
        int score[N][4] = { 0 };
        int sum, tmp;
    
        int i, j, k;
        //입력
        for (i = 0; i < N; i++)
        {
            printf("%2d번째 학생 이름 : ", i + 1);
            scanf_s("%s", name[i]);
    
            printf("국어, 영어, 수학 점수 입력 : ");
            sum = 0;
            for (j = 0; j < 3; j++)
            {
                scanf_s("%d", &score[i][j]);
                sum += score[i][j];
            }
            score[i][j] = sum;
        }
        printf("\n");
    
        //출력
        printf("이름\t국어\t영어\t수학\t총점\n");
        printf("------------------------------------\n");
        for (i = 0; i < N; i++)
        {
            printf("%s\t", name[i]);
            for (j = 0; j < 4; j++)
            {
                printf("%3d\t", score[i][j]);
            }
            printf("\n");
        }
        printf("\n");
    
        //정열
        for (i = 0; i < N - 1; i++)
        {
            for (j = 0; j < N - 1 - i; j++)
            {
                if (score[j][3] < score[j + 1][3])
                {
                    strcpy(str, name[j]);
                    strcpy(name[j], name[j + 1]);
                    strcpy(name[j + 1], str);
    
                    for (k = 0; k < 4; k++)
                    {
                        tmp = score[j][k];
                        score[j][k] = score[j + 1][k];
                        score[j + 1][k] = tmp;
                    }
                }
            }
        }
    
        printf("등수\t이름\t국어\t영어\t수학\t총점\n");
        printf("--------------------------------------------\n");
        for (i = 0; i < N; i++)
        {
            printf("%2d\t%s\t", i + 1, name[i]);
            for (j = 0; j < 4; j++)
            {
                printf("%3d\t", score[i][j]);
            }
            printf("\n");
        }
    
        return 0;
    }
    

    입력 데이터

    이름, 국어 점수, 영어점수, 수학점수
    

    출력 데이터

    이름, 국어 점수, 영어점수, 수학점수, 총합, 등수
    

    입력데이터를 순서대로 입력받은후 각 학생의 점수의 총합과 전체등수를 구한 후 출력 데이터와 같은 형태로 출력하는 프로그램을 작성하기. 단 입력된 학생 이름의 순서대로 결과를 출력하기입니다

    그런데 왜 실행을 하면 이름 입력후 성적입력으로 안 넘어가는거죠?

    오류 수정 부탁드려요

  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.06.15

    c언어 소스코드 질문합니다.


    pragma warning(disable : 4996)

    include

    include

    //학생 수

    define N 10

    int main() { char name[N][20], str[20]; //국, 영, 수, 총점으로 4개 int score[N][4] = { 0 }; int sum, tmp;

    int i, j, k;
    //입력
    for (i = 0; i < N; i++)
    {
        printf("%2d번째 학생 이름 : ", i + 1);
        scanf_s("%s", name[i]);
    
        printf("국어, 영어, 수학 점수 입력 : ");
        sum = 0;
        for (j = 0; j < 3; j++)
        {
            scanf_s("%d", &score[i][j]);
            sum += score[i][j];
        }
        score[i][j] = sum;
    }
    printf("\n");
    
    //출력
    printf("이름\t국어\t영어\t수학\t총점\n");
    printf("------------------------------------\n");
    for (i = 0; i < N; i++)
    {
        printf("%s\t", name[i]);
        for (j = 0; j < 4; j++)
        {
            printf("%3d\t", score[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    
    //정열
    for (i = 0; i < N - 1; i++)
    {
        for (j = 0; j < N - 1 - i; j++)
        {
            if (score[j][3] < score[j + 1][3])
            {
                strcpy(str, name[j]);
                strcpy(name[j], name[j + 1]);
                strcpy(name[j + 1], str);
    
                for (k = 0; k < 4; k++)
                {
                    tmp = score[j][k];
                    score[j][k] = score[j + 1][k];
                    score[j + 1][k] = tmp;
                }
            }
        }
    }
    
    printf("등수\t이름\t국어\t영어\t수학\t총점\n");
    printf("--------------------------------------------\n");
    for (i = 0; i < N; i++)
    {
        printf("%2d\t%s\t", i + 1, name[i]);
        for (j = 0; j < 4; j++)
        {
            printf("%3d\t", score[i][j]);
        }
        printf("\n");
    }
    
    return 0;
    

    }

    입력 데이터

    이름, 국어 점수, 영어점수, 수학점수

    출력 데이터

    이름, 국어 점수, 영어점수, 수학점수, 총합, 등수

    입력데이터를 순서대로 입력받은후 각 학생의 점수의 총합과 전체등수를 구한 후 출력 데이터와 같은 형태로 출력하는 프로그램을 작성하기. 단 입력된 학생 이름의 순서대로 결과를 출력하기입니다

    그런데 왜 실행을 하면 이름 입력후 성적입력으로 안 넘어가는거죠...?

    오류 수정 부탁드려요 ㅠㅠ