作业一:结构体数组存储学生信息(姓名,年龄,分数),完成输入学生信息,输出学生信息,求学生成绩之和,求最低学生成绩。
#include<myhead.h>
#define MAX 5
struct stu
{
char name[20];
int score;
int age;
};
int input_s(struct stu s[])
{
int i;
printf("请输入学生信息:\n");
for(i=0;i<MAX;i++)
{
printf("请输入第%d个学生的信息: ",i+1);
scanf("%s%d%d",s[i].name,&s[i].score,&s[i].age);
}
return 0;
}
int output_s(struct stu s[])
{
int i;
printf("\n学生信息:\n");
for(i=0;i<MAX;i++)
{
printf("姓名:%s,分数:%d,年龄:%d\n",s[i].name,s[i].score,s[i].age);
}
return 0;
}
int sum_s(struct stu s[])
{
int i,sum;
for(i=0;i<MAX;i++)
{
sum+=s[i].score;
}
return sum;
}
int min_s(struct stu s[])
{
int i,min;
min=s[0].score;
for(i=0;i<MAX;i++)
{
if(min>s[i].score)
{
min=s[i].score;
}
}
return min;
}
int main(int argc, const char *argv[])
{
struct stu s[5];
input_s(s);
output_s(s);
printf("总成绩为%d\n",sum_s(s));
printf("最低成绩为%d\n",min_s(s));
return 0;
}
运行结果:
请输入学生信息:
请输入第1个学生的信息: 李 67 13
请输入第2个学生的信息: 孙 78 12
请输入第3个学生的信息: 刘 59 13
请输入第4个学生的信息: 龙 85 12
请输入第5个学生的信息: 王 73 13
学生信息:
姓名:李,分数:67,年龄:13
姓名:孙,分数:78,年龄:12
姓名:刘,分数:59,年龄:13
姓名:龙,分数:85,年龄:12
姓名:王,分数:73,年龄:13
总成绩为367
最低成绩为59
作业二:在堆区,申请5个结构体空间,存储学生信息(姓名,分数)
循环输入学生信息,按照输入姓名查找某个学生,修改其成绩为100分。
#include<myhead.h>
#define MAX 5
struct stu
{
char name[20];
int score;
int age;
};
int input_s(struct stu *p)
{
int i;
printf("请输入学生信息:\n");
for(i=0;i<MAX;i++)
{
printf("请输入第%d个学生的信息: ",i+1);
scanf("%s%d%d",(p+i)->name,&(p+i)->score,&(p+i)->age);
}
return 0;
}
int output_s(struct stu *p)
{
int i;
printf("\n学生信息:\n");
for(i=0;i<MAX;i++)
{
printf("姓名:%s,分数:%d,年龄:%d\n",(p+i)->name,(p+i)->score,(p+i)->age);
}
return 0;
}
int find_s(struct stu *p,char key[])
{
int i,sub=-1;
for(i=0;i<MAX;i++)
{
if(strcmp(key,(p+i)->name)==0)
{
sub=i;
(p+i)->score =100;
}
}
if(sub==-1)
{
printf("查找失败\n");
}
else
{
printf("查找成功\n");
}
}
int main(int argc, const char *argv[])
{
struct stu *p=malloc(sizeof(struct stu)*MAX);
char key[10];
int flag=0;
input_s(p);
output_s(p);
printf("请输入要查找的姓名:");
scanf("%s",key);
find_s(p,key);
output_s(p);
return 0;
}
运行结果:
请输入学生信息:
请输入第1个学生的信息: 王 67 21
请输入第2个学生的信息: 孙 87 20
请输入第3个学生的信息: 刘 56 21
请输入第4个学生的信息: 朱 63 21
请输入第5个学生的信息: 胡 82 22
学生信息:
姓名:王,分数:67,年龄:21
姓名:孙,分数:87,年龄:20
姓名:刘,分数:56,年龄:21
姓名:朱,分数:63,年龄:21
姓名:胡,分数:82,年龄:22
请输入要查找的姓名:胡
查找成功
学生信息:
姓名:王,分数:67,年龄:21
姓名:孙,分数:87,年龄:20
姓名:刘,分数:56,年龄:21
姓名:朱,分数:63,年龄:21
姓名:胡,分数:100,年龄:22