谢谢帮忙看看这指针错在哪了 输入学生的信息 成绩

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:21:50
#include <stdio.h>
char *name[5];
float score[5][3];
long int num[5];
float avg[5];
void main()
{

float av;
printf("please enter five students'information\n");
printf("number name and three scores\n");
for(int i=0;i<5;i++)
{
printf("enter the student%d 's name:",i+1);
scanf("%s",&name[i]);
printf("\nenter the number of student:");
scanf("%ld",&num[i]);
printf("\nenter the 3 scores:");
scanf("%f %f %f",&score[i][i],&score[i][i+1],&score[i][i+2]);
av=(score[i][i+1]+score[i][i]+score[i][i+2])/3;
avg[i]=av;
printf("\n%3.1f\n",av);
}
printf("\nname number score1 score2 score3 average\n");
printf("---- ------ ------ ------ ------ -------\n");
for (int j=0;j<5;

for(int i=0;i<5;i++)
错误,需要在开头重新定义i.

for (int j=0;j<5;j++)
错误,需要在开头重新定义j.

printf("\nenter the number of student:");
scanf("%ld",&num[i]);
此句不知道你在这里表示什么意思?

for (int j=0;j<5;j++)
printf("\n%s %d %3.1f",*name[j],num[j],avg[j]);
此名是输出不了name的.

正解:
#include <stdio.h>
#include "string.h"
char name[5];
float score[5][3];
long int num[5];
float avg[5];
void main()
{

float av;int i,j;
printf("please enter five students'information\n");
printf("number name and three scores\n");
for(i=0;i<5;i++)
{
printf("enter the student%d 's name:",i+1);
scanf("%s",&name[i]);
printf("\nenter the 3 scores:");
scanf("%f %f %f",&score[i][i],&score[i][i+1],&score[i][i+2]);
av=(