有个问题,结构体如何让用户初始化?比如,学生信息统计系统,怎样才能让管理者输入学生信息?若用普通的初始化方法,一旦写好,就不能随用户心意更改。最后,附上本人拙劣的程序。十万火急!
#include<stdio.h>
struct student
{
char name[20];
int fs;
int ce;
char office;
char adress;
int num;
}stu[100];
void main()
{
int a,i,j[100],max=0,p=0;
scanf("%d",&a);
printf("\n");
for(i=0;i<a;i++)
{
scanf("%s",&stu[i].name);
scanf("%d %d",&stu[i].fs,&stu[i].ce);
scanf("%c %c",&stu[i].office,&stu[i].adress);
scanf("%d",&stu[i].num);
}
if(stu[i]>80&&stu[i].num>=1)
j[i]+=8000;
{
j[i]=0;
if(stu[i]>80&&stu[i].num>=1)
j[i]+=8000;
if(stu[i].fs>85&&stu[i].ce>80)
j[i]+=8000;
if(stu[i].fs>90)
j[i]+=2000;
if(stu[i]>80&&stu[i].adress=='Y')
j[i]+=1000;
if(stu[i].ce>=80&&stu[i].office=='Y')
j[i]+=850;
p+=j[i];
}
for(i=0;i<a;i++)
if(j[i]>j[max])
max=i;
printf("%s\n%d\n%d\n",stu[max].name,j[max],p);
}
#include<stdio.h>
struct student
{
char name[20];
int fs;
int ce;
char office;
char adress;
int num;
}stu[100];
void main()
{
int a,i,j[100],max=0,p=0;
scanf("%d",&a);
printf("\n");
for(i=0;i<a;i++)
{
scanf("%s",&stu[i].name);
scanf("%d %d",&stu[i].fs,&stu[i].ce);
scanf("%c %c",&stu[i].office,&stu[i].adress);
scanf("%d",&stu[i].num);
}
if(stu[i]>80&&stu[i].num>=1)
j[i]+=8000;
{
j[i]=0;
if(stu[i]>80&&stu[i].num>=1)
j[i]+=8000;
if(stu[i].fs>85&&stu[i].ce>80)
j[i]+=8000;
if(stu[i].fs>90)
j[i]+=2000;
if(stu[i]>80&&stu[i].adress=='Y')
j[i]+=1000;
if(stu[i].ce>=80&&stu[i].office=='Y')
j[i]+=850;
p+=j[i];
}
for(i=0;i<a;i++)
if(j[i]>j[max])
max=i;
printf("%s\n%d\n%d\n",stu[max].name,j[max],p);
}