主函數(shù)中 fopen調(diào)用有錯(cuò),應(yīng)該是
創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比代縣網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式代縣網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋代縣地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴(lài)。
fopen(argv[i++],"r")
執(zhí)行后,argc=4
argv={"cpy","a", "b", "c"}
于是 循環(huán)執(zhí)行三次,分別打開(kāi)a b c三個(gè)文件,并執(zhí)行fc(fp)
其中fp為每次打開(kāi)文件的指針
而函數(shù)fc功能為:
循環(huán)讀取文件中的字符,直到遇到#結(jié)束。
然后輸出c-32,也就是小寫(xiě)轉(zhuǎn)為大寫(xiě)的字符值。
所以 會(huì)輸出每個(gè)文件中存儲(chǔ)的小寫(xiě)字母對(duì)應(yīng)的大寫(xiě)值
即
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個(gè)學(xué)生的成績(jī),average是5門(mén)課的平均成績(jī),a1-a5分別是5門(mén)課的平均成績(jī),li是最高分的學(xué)生
//lj是最高分的學(xué)科,largest是最高分,fc是平均分方差,a是50個(gè)成績(jī)的平均分
printf("請(qǐng)輸入10個(gè)學(xué)生的成績(jī),按照語(yǔ)文、數(shù)學(xué)、英語(yǔ)、物理、化學(xué)的順序依次輸入:\n");
for(i=0;i!=10;++i)
{
printf("第%d個(gè)學(xué)生:\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個(gè)學(xué)生的成績(jī)?nèi)缦拢篭n");
printf("學(xué)生編號(hào)
語(yǔ)文
數(shù)學(xué)
英語(yǔ)
物理
化學(xué)\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個(gè)學(xué)生的平均分為:%.2f\n",i+1,average[i]);
printf("第1門(mén)課的平均分為:%.2f\n",a1);
printf("第2門(mén)課的平均分為:%.2f\n",a2);
printf("第3門(mén)課的平均分為:%.2f\n",a3);
printf("第4門(mén)課的平均分為:%.2f\n",a4);
printf("第5門(mén)課的平均分為:%.2f\n",a5);
printf("50個(gè)分?jǐn)?shù)中最高的分?jǐn)?shù)是第%d個(gè)學(xué)生的第%d門(mén)課,分?jǐn)?shù)為:%.2f\n",li,lj,largest);
printf("平均分方差為:%.2f\n",fc);
system("pause");
}
1. 在調(diào)用之前,先聲明和定義函數(shù)
2. 根據(jù)你函數(shù)的參數(shù)類(lèi)表來(lái),填入函數(shù)調(diào)用時(shí)所真正用到的參數(shù)來(lái)進(jìn)行調(diào)用
例如:要在函數(shù) F(){... } 中調(diào)用新增的小程序int FA(int a)和 char FC(char c),按照上面講的:
1.聲明和定義
int
FA(int a){ /*函數(shù)功能具體的定義*/};
char
FC(char c){ ... /*函數(shù)功能具體的定義*/};
2 根據(jù)函數(shù)的聲明,在F()中加以調(diào)用
void
F()
{
... ...
int getA = FA(6); //6為int,如果參數(shù)是6.001,則會(huì)強(qiáng)制轉(zhuǎn)換成為6
... ...
char getC= FC('a') //a為單個(gè)的字符
}
就這樣,簡(jiǎn)單吧,去試試吧 :-)
這里會(huì)依次打開(kāi)命令行輸入的每個(gè)文件
即a b c
對(duì)于每個(gè)文件,執(zhí)行fc,也就是 從文件中依次讀出字符,直到#為止。
每個(gè)字符,輸出putchar(c-32);
文件中都是小寫(xiě)字符,c-32即轉(zhuǎn)為大寫(xiě),因?yàn)榇笮?xiě)的ascii碼差值為32
于是,輸出每個(gè)文件中,#前,小寫(xiě)轉(zhuǎn)為大寫(xiě)的結(jié)果。即
AAAABBBBCCCC