结构体的应用

发布网友 发布时间: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了
没问题了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com