테스트 사이트 - 개발 중인 베타 버전입니다

c언어 구조체와 동적할당에 관련된 질문입니다. 채택완료

Sssuj 4년 전 조회 1,902

지금 구현한 형태에서 동적할당을 이용하면서 구조체를 이용해 학생 이름, 학번, 점수 이 세가지 값을 입력받아서 처리하고 싶은데 어디서부터 손을 대야할지 방법을 잘 모르겠습니다.

 

</strong></p>

<p><strong>#include <stdio.h>

#include <stdlib.h></strong></p>

<p><strong>struct info {

    char name[12];

    int number;

    int score;

};

typedef struct info info;</strong></p>

<p><strong>void main()

{

    int n, i, sum = 0, * p;

    double avg;</strong></p>

<p><strong>    printf("학생 수를 입력하시오 : ");

    scanf_s("%d", &n);</strong></p>

<p><strong>    p = (int*)malloc(n * sizeof(struct info));

    printf("학생 수 만큼의 이름과 학번과 점수를 입력하시오 : ");

    for (i = 0; i < n; i++) {

        scanf_s("%d", p + i); //&p[i]

        sum += p[i]; //*(p+i)

    }

    avg = (double)sum / n;

    int max = p[0];

    for (i = 1; i < n; i++) {

        if (p[i] > max) max = p[i];

    }

    free(p);

    printf("평균: %.2lf 최고점: %d \n", avg, max);

}</strong></p>

<p><strong>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
    p = (info*)malloc(n * sizeof(struct info));
    printf("학생 수 만큼의 이름과 학번과 점수를 입력하시오 : ");
    for (i = 0; i < n; i++) {
        scanf_s("%s", &p[i].name); //&p[i]
        scanf_s("%d", &p[i].number); //&p[i]
        scanf_s("%d", &p[i].score); //&p[i]
        sum += p[i].score;
    }
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인