十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include "stdio.h"
在贡觉等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、网站建设 网站设计制作按需求定制制作,公司网站建设,企业网站建设,品牌网站制作,成都全网营销,外贸网站建设,贡觉网站建设费用合理。
struct student
{ char num[6];
char name[8];
int clas[3];
int old[3];
} stu[5];
void main()
{int i;
for(i=0;i5;i++)
{ printf("\n please input No. %d score:\n",i);
printf("stuNo:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
printf("class:");
scanf("%s",stu[i].clas);
printf("old:");
scanf("%s",stu[i].old);
}
}
#includestdio.h
struct{
int num;
char name[10];
int s1,s2,s3,s4,s5;
}student[1000];
int main()
{
int number,i;
printf("请输入学生总人数:");
scanf("%d",number);
for(i=0;inumber;i++){
printf("请输入第%d名学生的信息\n",i+1);
printf("学号:");
scanf("%d",student[i].num);
printf("姓名:");
scanf("%s",student[i].name);
printf("成绩一:");
scanf("%d",student[i].s1);
printf("成绩二:");
scanf("%d",student[i].s2);
printf("成绩三:");
scanf("%d",student[i].s3);
printf("成绩四:");
scanf("%d",student[i].s4);
printf("成绩五:");
scanf("%d",student[i].s5);
}
printf("学生信息如下:\n");
for(i=0;inumber;i++){
printf("学号:%3d",student[i].num);
printf("姓名:%3s",student[i].name);
printf("成绩一:%3d",student[i].s1);
printf("成绩二:%3d",student[i].s2);
printf("成绩三:%3d",student[i].s3);
printf("成绩四:%3d",student[i].s4);
printf("成绩五:%3d\n",student[i].s5);
}
return 0;
}
根据题意:
要验证学号输入,应该有一个学生名单。
所以我定义了init函数来初始化一个学生名单,只是测试用数据,你想要手动输入学生名单,请修改该函数。
由于实现动态刷新信息,用到getch来暂停刷新,这个函数头文件conio在windows下有效,你要是使用的其他操作系统,可以自定义类似函数来替换,或者直接删除所有getch()和system("cls")语句。
命令符的输入验证按照题目要求。
#include stdio.h
#include stdlib.h
#include malloc.h
#include string.h
#include conio.h
#define STUN 5//学生最大人数
#define CN 100//输入命令符号字符串最大个数
typedef struct stu//学生个人信息,如想添加比如班级、年级等,自行添加
{
char id[20];//学号
char name[10];//姓名
float score;//成绩
}STU;
STU *init();//初始化一组学生信息
void showStus(STU *stus);//打印学生信息
void cmdA(STU *);//录入学生成绩,判断等级
void cmdH();
void cmdQ();
int cmdGet();//识别命令A、H、Q分别返回1、2、3。输入无效命令时返回0
int main()
{
int n=0;
STU *stus=NULL;
system("cls");
stus=init();
while(!n)
{
printf("[StuSc3]\n");
n=cmdGet();
if(!n)
{
printf("命令必须以A、H、Q开头,不区分大小写,忽略空格和tab字符\n");
printf("按任意键返重新输入命令符。。。\n");
getch();
}
switch(n)
{
case 1:showStus(stus);cmdA(stus);break;
case 2:cmdH();break;
case 3:cmdQ();return 0;
}
n=0;
system("cls");
}
return 0;
}
STU *init()
{
int i;
char nstr[25];
static STU stus[STUN];
for(i=0;iSTUN;i++)
{
strcpy(stus[i].id,"S00");
itoa(i+1,nstr,10);
strcat(stus[i].id,nstr);
strcpy(stus[i].name,"学生");
strcat(stus[i].name,nstr);
stus[i].score=0;
}
return stus;
}
void showStus(STU *stus)//打印学生信息
{
int i;
printf("当前学生信息:\n");
for(i=0;iSTUN;i++){
printf("学号:%s 姓名:%s 成绩:%.1f ",stus[i].id,stus[i].name,stus[i].score);
printf("%s%s%s\n",stus[i].score=85?"优秀":"",stus[i].score85 stus[i].score=60?"合格":"",stus[i].score60?"不合格":"");
}
printf("\n");
}
void cmdA(STU *stus)
{
STU *stuSave=NULL;
int i,flag;
char id[20];//学号
float score;//成绩
while(1)
{
printf("请输入学号及成绩:(输入END结束输入)\n");
scanf("%s",id);
if(strcmp(id,"END")==0)
break;
flag=0;
stuSave=NULL;
for(i=0;iSTUN;i++)
if(strcmp(stus[i].id,id)==0)
{
flag=1;
stuSave=stus[i];
break;
}
if(!flag)
{
printf("该学生不存在!\n任意键重新输入。。。\n");
getch();
continue;
}
scanf("%f",score);
if(score0){
printf("成绩不能为负数!\n任意键重新输入。。。\n");
getch();
continue;
}
stuSave-score=score;
system("cls");
showStus(stus);
}
}
void cmdH()
{
printf("使用帮助:\n");
printf("输入命令符A、H、Q,不区分大小写,忽略开头的空格及tab字符,忽略之后所有字符\n");
printf("命令A:录入学生成绩,判断成绩等级\n");
printf("命令H:帮助文档\n");
printf("命令Q:退出程序\n");
printf("按任意键返回命令符输入。。。\n");
getch();
}
void cmdQ()
{
printf("再见!\n");
printf("按任意键结束程序。。。\n");
getch();
}
int cmdGet()
{
char inStr[CN],*p=inStr;
printf("ST3\n");
scanf("%s",inStr);
while(*p!=0)
{
if(*p=='A' || *p=='a')
return 1;
if(*p=='H' || *p=='h')
return 2;
if(*p=='Q' || *p=='q')
return 3;
if(*p!=' ' *p!='\t')//跳过空格和tab
{
printf("无效命令\n");
return 0;
}
p++;
}
return 0;
}
#include stdio.h
struct Sudent
{
char num[6]; //改类型
char name[8];
char score[4];
}stu[5];
// print 定义可以放前面
void print( struct Sudent stu[],int count) //加上函数类型,参数类型声明
// struct student stu[6];//这句不要
{
int i,j; //增加
for(i = 0;i count;i++) //增加
{
printf("%s%s",stu[i].num,stu[i].name/*,stu[i].score*/);//
for(j=0;j3;j++)
printf("%d",stu[i].score[j]);
printf("\n");
}
}
//
void main()
{
int i,j;
//char stu[5]; //已经声明stu为全局结构体数组了,这句不要
// char print(char stu); //
for(i=0;i5;i++)
{
scanf("%s",stu[i].num);
scanf("%s",stu[i].name);
for(j=0;j3;j++)
scanf("%d",stu[i].score[j]);
}
print(stu,5);
}
typedef struct _stu{
char name[100];
int num,score[3];
}stu;
stu input(){
stu s;
printf("input name");
scanf("%s",s.name);
printf("input number");
scanf("%d",s.num);
printf("input 3 scores");
scanf("%d,%d,%d",s.score,s.score+1,s,score+2);
return s;
}
void print(stu s)
{
printf("%d\t%s\t%d,%d,%d",s.num,s.name,s.score[0],s.score[1],s.score[2]);
}
main()
{
stu a;
a=input();
printf("num\tname\tscore\n");
print(a);
}
#includestdio.h
#define N 10
struct Student
{
char id[8],name[8];
int s1,s2,s3;
float ave_s;
};
int main()
{
struct Student s[N];
int i,p;
/* 输入学生成绩信息,并计算平均成绩 */
for(i=0; iN; i++)
{
printf("输入学生 %d 的学号 姓名 和3门课的成绩:",i+1);
scanf("%s%s%d%d%d",s[i].id,s[i].name,s[i].s1,s[i].s2,s[i].s3);
s[i].ave_s=(s[i].s1+s[i].s2+s[i].s3)/3.0;
}
/* 输出每个学生的平均成绩 */
printf(" 学号 平均成绩\n");
for(i=0; iN; i++)
printf("%8s%8.1f\n\n",s[i].id,s[i].ave_s);
/* 查找平均成绩最高的学生 */
p=0;
for(i=0; iN; i++)
if(s[i].ave_ss[p].ave_s)
p=i;
/* 输出平均成绩最高的学生信息 */
printf(" 学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("%8s%8s%8d%8d%8d%8.1f\n",s[p].id,s[p].name,s[p].s1,s[p].s2,s[p].s3,s[p].ave_s);
return 0;
}