题目:写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score【3】,用主函数输入这些记录,用print函数输出这些记录。
(我用指针来做)
请看下列程序
#include<stdio.h>
#include<stdlib.h>
struct student
{
int num;
char name[10];
float score[3];
};stu[5];
int main()
{
void print(struct student *);
int j;
struct student *k;
printf("Please input the data of students:\n");
for(k=stu;k<stu+5;k++)
{
printf("Please input the num,name,scores:\n");
scanf("%d %s",&k->num,&k->name);
for(j=0;j<3;j++)
scanf("%f",&k->score[j]);
}
print(k);
system("pause");
return 0;
}
void print(struct student *p)
{
printf("num name score\n");
for(p=stu;p<stu+5;p++)
printf("%-5d%-5s%-5.1f%-5.1f%-5.1f\n",p->num,p->name,p->score[0],p->score[1],p->score[2]);
}
请大神教教我,我还只是菜鸟一只
你的程序可以输入五组数据啊
就是stu[5] 前面多了个分号啊
#include<stdio.h>
#include<stdlib.h>
struct student
{
int num;
char name[10];
float score[3];
}stu[5];
int main()
{
void print(struct student *);
int j;
struct student *k;
printf("Please input the data of students:\n");
for(k=stu;k<stu+5;k++)
{
printf("Please input the num,name:\n");
scanf("%d %s",&k->num,&k->name);
for(j=0;j<3;j++)
scanf("%f",&k->score[j]);
}
print(k);
system("pause");
return 0;
}
void print(struct student *p)
{
printf("num name score\n");
for(p=stu;p<stu+5;p++)
printf("%-5d%-5s%-5.1f%-5.1f%-5.1f\n",p->num,p->name,p->score[0],p->score[1],p->score[2]);
}
追问我刚刚搞错了,请问那个地方不是都要有一个分号吗?有时候我少了就显示错误,这次却可以,为什么呢?
追答那个地方不需要分好吧。分号代表定义结束。
同一个学生的所有数据都用空格分隔,不同学生的输入用回车分隔。追问
我就是像你说的那样啊
忘记了一个错误:
struct student
{
int num;
char name[10];
float score[3];
};stu[5];
修改为
struct student
{
int num;
char name[10];
float score[3];
} stu[5]; //注意这里