十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
主函数中 fopen调用有错,应该是
创新互联-专业网站定制、快速模板网站建设、高性价比代县网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式代县网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖代县地区。费用合理售后完善,十年实体公司更值得信赖。
fopen(argv[i++],"r")
执行后,argc=4
argv={"cpy","a", "b", "c"}
于是 循环执行三次,分别打开a b c三个文件,并执行fc(fp)
其中fp为每次打开文件的指针
而函数fc功能为:
循环读取文件中的字符,直到遇到#结束。
然后输出c-32,也就是小写转为大写的字符值。
所以 会输出每个文件中存储的小写字母对应的大写值
即
AAAABBBBCCCC
#includestdio.h
#includewindows.h
main()
{
int
i,j,li=0,lj=0;
float
score[10][5],average[10],a1,a2,a3,a4,a5,largest=0,fc=0,a=0;
//score是50个学生的成绩,average是5门课的平均成绩,a1-a5分别是5门课的平均成绩,li是最高分的学生
//lj是最高分的学科,largest是最高分,fc是平均分方差,a是50个成绩的平均分
printf("请输入10个学生的成绩,按照语文、数学、英语、物理、化学的顺序依次输入:\n");
for(i=0;i!=10;++i)
{
printf("第%d个学生:\n",i+1);
for(j=0;j!=5;++j)
{
scanf("%f",score[i][j]);
if(largestscore[i][j])
{
largest=score[i][j];
li=i+1;
lj=j+1;
}
a=a+score[i][j];
}
average[i]=(score[i][0]+score[i][1]+score[i][2]+score[i][3]+score[i][4])/5;
a1=a1+score[i][0];
a2=a2+score[i][1];
a3=a3+score[i][2];
a4=a4+score[i][3];
a5=a5+score[i][4];
}
a=a/50;
for(i=0;i!=10;++i)
{
for(j=0;j!=5;++j)
{
fc=fc+(score[i][j]-a)*(score[i][j]-a);
}
}
fc=fc/50;
a1=a1/10;
a2=a2/10;
a3=a3/10;
a4=a4/10;
a5=a5/10;
printf("50个学生的成绩如下:\n");
printf("学生编号
语文
数学
英语
物理
化学\n");
for(i=0;i!=10;++i)
{
printf("%8d
",i);
for(j=0;j!=5;++j)
{
printf("%2.2f
",score[i][j]);
}
printf("\n");
}
for(i=0;i!=10;++i)
printf("第%d个学生的平均分为:%.2f\n",i+1,average[i]);
printf("第1门课的平均分为:%.2f\n",a1);
printf("第2门课的平均分为:%.2f\n",a2);
printf("第3门课的平均分为:%.2f\n",a3);
printf("第4门课的平均分为:%.2f\n",a4);
printf("第5门课的平均分为:%.2f\n",a5);
printf("50个分数中最高的分数是第%d个学生的第%d门课,分数为:%.2f\n",li,lj,largest);
printf("平均分方差为:%.2f\n",fc);
system("pause");
}
1. 在调用之前,先声明和定义函数
2. 根据你函数的参数类表来,填入函数调用时所真正用到的参数来进行调用
例如:要在函数 F(){... } 中调用新增的小程序int FA(int a)和 char FC(char c),按照上面讲的:
1.声明和定义
int
FA(int a){ /*函数功能具体的定义*/};
char
FC(char c){ ... /*函数功能具体的定义*/};
2 根据函数的声明,在F()中加以调用
void
F()
{
... ...
int getA = FA(6); //6为int,如果参数是6.001,则会强制转换成为6
... ...
char getC= FC('a') //a为单个的字符
}
就这样,简单吧,去试试吧 :-)
这里会依次打开命令行输入的每个文件
即a b c
对于每个文件,执行fc,也就是 从文件中依次读出字符,直到#为止。
每个字符,输出putchar(c-32);
文件中都是小写字符,c-32即转为大写,因为大小写的ascii码差值为32
于是,输出每个文件中,#前,小写转为大写的结果。即
AAAABBBBCCCC