发布网友 发布时间:2022-04-23 06:18
共3个回答
热心网友 时间:2023-10-03 06:23
这个问题好简单的啊。记MARK下,晚上有空了给你简单写写吧。
=======================
楼下的真快啊,两位写得都不错,不过最大的问题是都没有做输入验证。我简单写了下,和各位分享一下。
=======================
代码在g++编译器下验证通过,如果在VC++环境下“fflush(stdin)”这个命令不能清空输入缓存,需用“while(getchar()!='\n')”这段代码代替。
=======================
先展示下结果:
请输入第1个学生的姓名:tt
请输入第1个学生的学号:001
请输入第1个学生的英文成绩:abc
请重新输入第1个学生的英文成绩(0-100):99
请输入第1个学生的数学成绩:abc
请重新输入第1个学生的数学成绩(0-100):90
请输入第1个学生的C语言成绩:ee
请重新输入第1个学生的C语言成绩(0-100):70
请输入第1个学生的体育成绩:60
请输入第2个学生的姓名:gg
请输入第2个学生的学号:002
请输入第2个学生的英文成绩:99
请输入第2个学生的数学成绩:88
请输入第2个学生的C语言成绩:77
请输入第2个学生的体育成绩:66
请输入第3个学生的姓名:hh
请输入第3个学生的学号:003
请输入第3个学生的英文成绩:55
请输入第3个学生的数学成绩:66
请输入第3个学生的C语言成绩:77
请输入第3个学生的体育成绩:88
name sno English Math Cgrade PEgrade avg
tt 001 99 90 70 60 79.750000
gg 002 99 88 77 66 82.500000
hh 003 55 66 77 88 71.500000
=======================================
结果文件:
name sno English Math Cgrade PEgrade avg
tt 001 99 90 70 60 79.750000
gg 002 99 88 77 66 82.500000
hh 003 55 66 77 88 71.500000
========================================
源代码:
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 3
typedef struct student
{
char name[20];
char sno[20];
int English;
int Math;
int Cgrade;
int PEgrade;
}student;
int main()
{
FILE *fp = NULL;
student stu[MAXSIZE];
float avg[MAXSIZE];
int i;
//enter the students info
for(i=0;i<MAXSIZE;i++)
{
printf("\n请输入第%d个学生的姓名:",i+1);
scanf("%s",stu[i].name);
fflush(stdin);
printf("\n请输入第%d个学生的学号:",i+1);
scanf("%s",stu[i].sno);
fflush(stdin);
printf("\n请输入第%d个学生的英文成绩:",i+1);
while(1)
{
scanf("%d",&stu[i].English);
if( stu[i].English <= 100 && stu[i].English >=0 )
break;
printf("\n请重新输入第%d个学生的英文成绩(0-100):",i+1);
fflush(stdin);
}
printf("\n请输入第%d个学生的数学成绩:",i+1);
while(1)
{
scanf("%d",&stu[i].Math);
if( stu[i].Math <= 100 && stu[i].Math >=0 )
break;
printf("\n请重新输入第%d个学生的数学成绩(0-100):",i+1);
fflush(stdin);
}
printf("\n请输入第%d个学生的C语言成绩:",i+1);
while(1)
{
scanf("%d",&stu[i].Cgrade);
if( stu[i].Cgrade <= 100 && stu[i].Cgrade >=0 )
break;
printf("\n请重新输入第%d个学生的C语言成绩(0-100):",i+1);
fflush(stdin);
}
printf("\n请输入第%d个学生的体育成绩:",i+1);
while(1)
{
scanf("%d",&stu[i].PEgrade);
if( stu[i].PEgrade <= 100 && stu[i].PEgrade >=0 )
break;
printf("\n请重新输入第%d个学生的体育成绩(0-100):",i+1);
fflush(stdin);
}
}
for(i=0;i<MAXSIZE;i++)
{
avg[i] = (stu[i].English + stu[i].Math + stu[i].Cgrade + stu[i].PEgrade ) / 4.0;
}
fp=fopen("a.txt","w");
fprintf(fp, "name\tsno\tEnglish\tMath\tCgrade\tPEgrade\tavg\n");
printf( "name\tsno\tEnglish\tMath\tCgrade\tPEgrade\tavg\n");
for( i = 0; i < MAXSIZE; i++ )
{
fprintf(fp, "%s\t%s\t%d\t%d\t%d\t%d\t%f\n", stu[i].name, stu[i].sno, stu[i].English, stu[i].Math, stu[i].Cgrade, stu[i].PEgrade, avg[i]);
printf("%s\t%s\t%d\t%d\t%d\t%d\t%f\n", stu[i].name, stu[i].sno, stu[i].English, stu[i].Math, stu[i].Cgrade, stu[i].PEgrade, avg[i]);
}
fclose(fp);
return 0;
}
===============================================
热心网友 时间:2023-10-03 06:24
//程序可以成功运行,可以写入文件和屏幕,不懂得可以交流!
//希望kutpbpb的回答能对你有所帮助!!!
#include<stdio.h>
#include<stdlib.h>
typedef struct grade
{
int Eng;
int Math;
int Cg;
int Pe;
float avg;
}grade,*pgrade;
typedef struct user
{
char name[20];
char sno[20];
grade score;
}user,*puser;
void main()
{
FILE *fp;
user L[10];
int i;
printf("\nPlease Enter the stu info:");
for(i=0;i<2;i++)
{
printf("\nEnter the %d stu information :",i+1);
printf("\nEnter name:");
scanf("%s",L[i].name);
printf("Enter Sno:");
scanf("%s",L[i].sno);
printf("Enter Eng grade:");
scanf("%d",&L[i].score.Eng);
printf("Enter Math grade:");
scanf("%d",&L[i].score.Math);
printf("Enter C grade:");
scanf("%d",&L[i].score.Cg);
printf("Enter PE grade:");
scanf("%d",&L[i].score.Pe);
L[i].score.avg=(L[i].score.Eng+L[i].score.Math
+L[i].score.Cg+L[i].score.Pe)/4.0;
}
fp=fopen("a.txt","w");
for(i=0;i<2;i++)
{
fprintf(fp,"\nThe %d student info:\nname:%s",i+1,L[i].name);
printf("\nThe %d student info:\nname:%s",i+1,L[i].name);
fprintf(fp,"\nsno:%s \nscore :",L[i].sno);
printf("\nsno:%s \nscore :",L[i].sno);
fprintf(fp,"\nEng: %5d\nMath: %5d\nCg: %5d\nPe: %5d",L[i].score.Eng,
L[i].score.Math,L[i].score.Cg,L[i].score.Pe);
printf("\nEng: %5d\nMath: %5d\nCg: %5d\nPe: %5d",L[i].score.Eng,
L[i].score.Math,L[i].score.Cg,L[i].score.Pe);
fprintf(fp,"\navg: %5.2lf",L[i].score.avg);
printf("\navg: %5.2lf",L[i].score.avg);
}
fclose(fp);
}百度地图
本数据来源于百度地图,最终结果以百度地图最新数据为准。
热心网友 时间:2023-10-03 06:24
要用到数据库吗?还是简单的C或C++程序实现?
对不住楼上,我献丑了……
#include<iostream.h>
#define number 10
struct StudentInfo{
char name;
int StudentID;
int EngScore;
int MathScore;
int CScore;
int SportScore;
};
int average(StudentInfo student)
{
int sum=0;
int average;
sum += student.EngScore+student.MathScore+student.CScore+student.SportScore;
average = sum/4;
return average;
}
void main()
{
StudentInfo student[number];
int avrg[number];
int i;
cout<<"输入学生信息(格式:姓名 学号 英语成绩 数学成绩 C成绩 体育成绩)"<<endl;
for(i=0;i<number;i++)
{
cin>>student[i].name;
cin>>student[i].StudentID;
cin>>student[i].EngScore;
cin>>student[i].MathScore;
cin>>student[i].CScore;
cin>>student[i].SportScore;
}
for(i=0;i<number;i++)
{
avrg[i] = average(student[i]);
}
for(i=0;i<number;i++)
{
cout<<student[i].name<<" ";
cout<<student[i].StudentID<<" ";
cout<<student[i].EngScore<<" ";
cout<<student[i].MathScore<<" ";
cout<<student[i].CScore<<" ";
cout<<student[i].SportScore<<" ";
cout<<avrg[i]<<endl;
}
}