发布网友 发布时间:2022-04-22 03:05
共4个回答
热心网友 时间:2023-08-10 03:20
你的程序我大致看明白了!
其核心问题在于你动用循环结构时没有使指针发生迁移!
程序给人总体印象就是乱!建议最好按要求重新写一个!
大致错误点:
1。结构体引用错误
2。数组下标错误
3。格式输入错误
4。指针使用不当
修改后的程序如下:
#include<stdio.h>
#define MOON 3
struct student
{
int num;
char name[20];
int score[3]; /* 原文 int score[2]; */
}; /* 原文 stu[MOON]; */
void main()
{
int i,j; /* 原文 int i,air,j; */
struct student *p,stu[MOON]; /* 原文 struct student *p; */
p=stu;
for(i=0;i<MOON;i++,p++) /* 原文 for(i=0;i<MOON;i++) */
{
printf("The number:");
scanf("%d",&p->num);
printf("\nThe name:");
scanf("%s",p->name); /* 原文 scanf("%s",&p->name); */
for(j=0;j<3;j++)
{
printf("The %d socre:",j+1);
scanf("%d",&p->score[j]); /* 原文 scanf("The score:%d",&p->score[j]); */
}
}
for(i=0,p=stu;i<MOON;i++,p++) /* 原文 for(i=0;i<MOON;i++) */
printf("%d\n%s\n%d\n%d\n%d\n",p->num,p->name,p->score[0],p->score[1],p-
>score[2]);
}
10分也太小气了!
热心网友 时间:2023-08-10 03:21
p=stu; ==》p=&stu;
热心网友 时间:2023-08-10 03:21
#include<stdio.h>
#define MOON 3
struct student
{
int num;
char name[20];
int score[2];
};
void main()
{
int i,j;
char ch; //
struct student stu[MOON];
for(i=0;i<MOON;i++)
{
printf("The number:");
scanf("%d",&stu[i].num);
printf("The name:");
scanf("%s",stu[i].name);
while((ch=getchar())!='\n')
continue; //清除缓冲区
for(j=0;j<2;j++) //数组大小为2
{
printf("The %d socre:",j+1);
scanf("%d",&(stu[i].score[j]));
while((ch=getchar())!='\n')
continue; //
}
printf("\n");
}
for(i=0;i<MOON;i++)
printf("%03d %s%4d%4d \n",stu[i].num,stu[i].name,
stu[i].score[0],stu[i].score[1]);
}
定义了一个结构体数组,不需要用指针表示
热心网友 时间:2023-08-10 03:22
#include<stdio.h>
#define MOON 3
struct student
{
int num;
char name[10];
float score[3];
}stu[MOON];
void main()
{
int i,j,k;
struct student * p;
p=stu;
i=0;
while (i<MOON)
{
printf("The number:");
scanf("%d",&p->num);
printf("\nThe name:");
scanf("%s",&p->name);
for(j=0;j<3;j++)
{ k=1;
printf("The %d socre:",k);
scanf("%f",&p->score[j]);
k++;
}
i++;
}
for(i=0;i<MOON;i++)
printf("%d\n%s\n%f\n%f\n%f\n",p->num,p->name,p->score[0],p->score[1],p->score[2]);
}
***************************
这是c了
没问题了