#include <stdioh>
void main()
{
int score[9][3];
double avr[9];
int i,j,sum[2]={0};
for(i=0;i<9;i++)
{
for(j=0;j<2;j++)
{
printf("请输入第%d名学生第%d门成绩",i+1,j+1);
scanf("%d",&score[i][j]);
sum[j]+=score[i][j];
}
avr[i]=(score[i][0]+score[i][1])05;
}
printf("成绩如下\n\n");
printf(" 数学 语文 平均分\n");
for(i=0;i<9;i++)
{
for(j=0;j<2;j++)
{
printf("%6d",score[i][j]);
}printf("%102f\n",avr[i]);
}
printf("%6d%6d\n\n",sum[0],sum[1]);
}
可以了,给好评哦
s=12,m=10;
不知道你知道不知道C中for循环的执行顺序,for中括号内有三个语句,分别称为表达式一,二,三。执行顺序是这样的:
一:先求解表达式一。
二,求解表达式二,若为真,则执行for语句中的循环体,若为假,则结束。
三,求解表达式三
四,转回上面第二步骤继续执行。
此程序是这样执行的
先判断,s<=8,执行循环体,执行后,s=1,m=2
再执行m=m+2,s仍然满足s<=8,执行循环体,执行后s=5,m=5,再执行m=m+2,m=7,还满足,再执行循环体,s=5+7=12,m=8,关键来了,此时m=8还满足m<=8这个条件,还要执行m=m+2,执行后m=10了,不满足条件了,结束循环,最后,s=12,m=10
1
#include <stdioh>int main()
{
int i, j;
for (i = 0; i < 4; ++i)
{
for (j = 0; j < i; ++j)
putchar(' ');
for (j = 0; j < 8; ++j)
putchar('');
putchar('\n');
}
return 0;
}
2
#include <stdioh>int main()
{
int i, j;
for (i = 0; i < 4; ++i)
{
for (j = 3 - i; j > 0; --j)
putchar(' ');
for (j = 0; j < 8; ++j)
putchar('');
putchar('\n');
}
return 0;
}
#include<stdioh>
#include<stdlibh>
#include<stringh>
#define MAXN 100 //一个班最多的人数
#define MAXM 10 //最多课程门数
char subject[MAXM][12]; //保存所有课程名称
char number[MAXN][10]; //保存全班学号
char name[MAXN][20]; //保存全班姓名
float score[MAXN][MAXM]; //保存全班所有课程成绩
float sum[MAXN]; //保存全班总成绩
int n,m; //n,m保存全班实际人数和课程数
void input();
void search();
void sort();
void save();
void load();
void print();
void main()
{
//欢迎首界面
char a,b;
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3\n");
printf(" \3 \3\n");
printf(" \3 \3\n");
printf(" \3 ¥欢迎进入电子科技大学成都学院学生管理系统¥ \3\n");
printf(" \3 \3\n");
printf(" \3 \2\2 welcome to uestc\2\2 \3\n");
printf(" \3 \3\n");
printf(" \3 \3 \4 \5 \6 \6 \5 \4 \3 \3\n");
printf(" \3 \3\n");
printf(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3\n");
printf("\n");
printf("\n");
printf(" 请按回车键进入下一界面\n");
printf(" ------------------------\n");
do
{
scanf("%c",&a);
if(a!=10)
{
printf(" 您输入有误,请重新输入,谢谢!!!\n");
scanf("%c",&b);
}
b=a;
}
while(b!=10);
system("cls");
//功能选择界面
int select;
while(1)
{
system("cls");
printf(" 欢迎进入电子科技大学成都学院学生管理系统\n");
printf("\n");
printf("\n");
printf(" 1学生成绩新建\n");
printf(" 2学生成绩查询\n");
printf(" 3学生成绩插入\n");
printf(" 4学生成绩修改\n");
printf(" 5学生成绩删除\n");
printf(" 6学生成绩排名\n");
printf(" 7学生成绩保存\n");
printf(" 8学生成绩读取\n");
printf(" 9学生成绩报表打印\n");
printf(" 0退出系统\n");
printf("\n");
printf("\n");
printf("\n 请输入您的选择编号,回车键确定:\n");
printf(" ------------------------------------------------------------------\n");
scanf("%d",&select);
switch(select)
{
case 1:input();break;
case 2:search();break;
case 6:sort();break;
case 7:save();break;
case 8:load();break;
case 9:print();break;
case 0:printf(" 谢谢您的使用。\n");
}
}
}
//输入成绩模块
void input()
{
system("cls");
int i,j;
printf(" 新建学生成绩信息\n");
printf("\n");
printf("\n");
printf("\n 请输入全班人数:");
scanf("%d",&n);
printf("\n 请输入课程门数:");
scanf("%d",&m);
printf("\n 请输入%d门课程名称\n",m);
for(j=0;j<m;j++)
{
printf("\n 第%d门课程名称:",j+1);
scanf("%s",subject[j]);
}
printf("\n 第%d个学生数据\n",n);
for(i=0;i<n;i++)
{
printf("\n 请输入第%d个人的数据\n",i+1);
printf("\n 学号:");
scanf("%s",number[i]);
printf("\n 姓名:");
scanf("%s",name[i]);
printf("\n %d门课程的成绩:\n",m);
sum[i]=0;
//边输入边统计总成绩
for(j=0;j<m;j++)
{
printf(" %s成绩:",subject[j]);
scanf(" %f成绩",&score[i][j]);
sum[i]=sum[i]+score[i][j];
}
}
}
//查询成绩模块
void search()
{
system("cls");
int j;
int search1();
int search2();
int select,index;
printf("\n 查询学生成绩信息\n");
while(1)
{
printf("\n 1按学号查询\n");
printf(" 2按姓名查询\n");
printf(" 0返回\n");
printf("\n 请输入您的选择编号:");
printf("\n ---------------------------------------\n");
scanf("%d",&select);
switch(select)
{
case 1:index=search1(); break;
case 2:index=search2();break;
case 0:return;
}
if(index!=-1)
{
printf("\n 学号 :%s\n",number[index]);
printf("\n 姓名 :%s\n",name[index]);
for(j=0;j<m;j++)
{
printf("\n %s成绩 :",subject[j]);
printf("%2f\n",score[index][j]);
}
printf("\n 总成绩 :%2f\n",sum[index]);
printf("\n 平均成绩:%2f\n",sum[index]/m);
printf("\n 您还可以继续查询其他学生成绩信息:\n");
}
else printf("\n 没有这个同学。\n");
}
}
//按学号查询模块
int search1()
{
system("cls");
int i;
char s_number[10];
printf(" 请输入要查询的学号:\n");
scanf("%s",s_number);
printf(" 该同学的信息如下:\n");
for(i=0;i<n;i++)
if(strcmp(number[i],s_number)==0)
break;
if(i<n)
return i;
else return -1;
}
//按姓名查询模块
int search2()
{
system("cls");
int i;
char s_name[10];
printf(" 请输入要查询的姓名:");
scanf("%s",s_name);
for(i=0;i<n;i++)
if(strcmp(name[i],s_name)==0)
break;
if(i<n)
return i;
else return -1;
}
//排名模块
void sort()
{
system("cls");
void sort1();
void sort2();
void sort3();
int select;
while(1)
{
printf(" 学生成绩排名信息\n");
printf("\n 1按学号排名\n");
printf(" 2按姓名排名\n");
printf(" 3按总成绩排名\n");
printf(" 0返回\n");
printf("\n 请输入您的选择编号:\n");
printf(" --------------------------------------\n");
scanf("%d",&select);
switch(select)
{
case 1:sort1();break;
case 2:sort2();break;
case 3:sort();break;
case 0:return;
}
}
}
//按学号排名模块
void sort1()
{
system("cls");
int i,j,k;
char x_number[10];
char x_name[20];
float x;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(number[i],number[k])<0)
k=j;
if (k!=i)
{
strcpy(x_number,number[i]);
strcpy(number[i],number[k]);
strcpy(number[k],x_number);
strcpy(x_name,name[i]);
strcpy(name[i],name[k]);
strcpy(name[k],x_name);
for(j=0;j<m;j++)
{
x=score[i][j];
score[i][j]=score[k][j];
score[k][j]=x;
}
x=sum[i];sum[i]=sum[k];sum[k]=x;
}
}
printf("排序完毕\n");
}
//按姓名排名模块
void sort2()
{
system("cls");
int i,j,k;
char x_number[10];
char x_name[20];
float x;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[j],name[k])<0)
k=j;
if(k!=i)
{
strcpy(x_number,number[i]);
strcpy(number[i],number[k]);
strcpy(number[k],x_number);
strcpy(name[i],name[k]);
strcpy(name[k],x_name);
for(j=0;j<m;j++)
{
x=score[i][j];
score[i][j]=score[k][j];
score[k][j]=x;
}
x=sum[i];sum[i]=sum[k];sum[k]=x;
}
}
printf("排序完毕\n");
}
//按总成绩排名模块
void sort3()
{
system("cls");
int i,j,k;
char x_number[10];
char x_name[20];
float x;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(sum[j]<sum[k])
k=j;
if(k!=i)
{
strcpy(x_number,number[i]);
strcpy(number[i],number[k]);
strcpy(number[k],x_number);
strcpy(x_name,name[i]);
strcpy(name[i],name[k]);
strcpy(name[k],x_name);
for(j=0;j<m;j++)
{
x=score[i][j];
score[i][j]=score[k][j];
score[k][j]=x;
}
x=sum[i];sum[i]=sum[k];sum[k]=x;
}
}
printf("排序完毕\n");
}
//保存成绩模块
void save()
{
system("cls");
FILE fp;
char filename[20];
int i,j;
printf(" 请输入文件名: ");
scanf("%s",filename);
if((fp=fopen(filename, "w"))==NULL)
{
printf(" 打开文件失败\n");
return;
}
fprintf(fp, "%d %d",n,m);
for(j=0;j<m;j++)
fprintf(fp, "%s",subject[j]);
for(i=0;i<n;i++)
{
fprintf(fp, "%s %s",number[i],name[i]);
for(j=0;j<m;j++)
fprintf(fp, "%51f",score[i][j]);
}
fclose(fp);
printf(" 保存完毕\n");
}
// 提取成绩模块
void load( )
{
system("cls");
FILE fp;
char filename[20];
int i,j;
printf (" 请输入文件名:");
scanf("%s",filename);
if ((fp=fopen(filename,"r"))==NULL)
{
printf(" 文件不存在\n");
return;
}
fscanf(fp,"%d%d",&n,&m);
for(j=0;j<m;j++)
fscanf(fp,"%s",subject[j]);
for(i=0;i<n;i++)
{
fscanf(fp,"%s%s",number[i],name[i]);
sum[i]=0;
for(j=0;j<m;j++)
{
fscanf(fp,"%f",&score[i][j]);
sum[i]=sum[i]+score[i][j];
}
}
fclose(fp);
printf(" 提取完毕\n");
}
//打印成绩报表模块
void print()
{
system("cls");
void print1();
void print2();
int select;
printf(" 打印学生成绩信息\n");
printf("\n");
printf("\n");
printf(" 1屏幕显示报表\n");
printf(" 2打印机打印报表\n");
printf(" 0返回\n");
printf("\n 请输入您的选择编号:");
printf("\n --------------------------------------\n");
scanf("%d",&select);
switch(select)
{
case 1:print1();break;
case 2:print2();break;
case 0:return;
}
}
// 屏幕显示报表模块
void print1()
{
system("cls");
int i,j;
printf(" 成绩总表\n");
printf(" 学号姓名:");
for (j=0;j<m;j++)
printf("%10s",subject[j]);
printf(" 总成绩平均成绩\n");
for (i=0;i<n;i++)
{
printf("%8s %8s",number[i],name[i]);
for (j=0;j<m;j++)
printf("%61f",score[i][j]);
printf("%61f %62f\n",sum[i],sum[i]/m);
}
printf(" 显示完毕\n");
}
// 打印机打印报表模块
void print2( )
{
system("cls");
FILE fp;
int i,j;
printf(" 请准备好打印机,按任意键继续…\n");
scanf("% c");
if ((fp=fopen("prn","w"))==NULL)
{
printf(" 打印机没有准备好\n");
return;
}
fprintf(fp," 成绩总表\n");
fprintf(fp," 学号姓名\n");
for (j=0;j<m;j++ )
fprintf(fp,"%10s",subject[j]);
fprintf(fp," 总成绩平均成绩\n");
for(i=0;i<n;i++)
{
fprintf(fp,"%61f",score[i][j]);
fprintf(fp,"%8s %8s",number[i],name[i]);
for (j=0;j<m;j++)
fprintf(fp,"%61f %62f\n",sum[i],sum[i]/m);
}
fclose(fp);
printf(" 打印完毕\n");
}
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)