【問題描述】文本檔案score.txt中保存有一組學生的成績(為整數),成績之間用空格分割,成績個數未知;要求從該檔案讀取資料,計算平均成績、最高分和最低分,將結果輸出到檔案result.txt中,其中平均分保留兩位小數。
【輸入形式】
【輸出形式】
【樣例輸入】假設score.txt中的資料為:90 80 70 60
【樣例輸出】result.txt中的資料為:75.00 90 60
程式如下:#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp,*fg;
int a[4];
int i,s=0;
int m,n;
float c;
if((fp=fopen("c:\\score.txt","r"))==NULL)
{
printf("File open error!\n");
exit(0);
}
for(i=0;i<4;i++)
{
fscanf(fp,"%d",&a[i]);
s+=a[i];
}
c=s/4.0;
m=a[0];n=a[0];
for(i=0;i<4;i++)
{
if(m<a[i])
m=a[i];
if(n>a[i])
n=a[i];
}
if((fg=fopen("c:\\result.txt","w"))==NULL)
{
printf("File open error!\n");
exit(0);
}
fprintf(fg,"%.2f%d%d",c,m,n);
printf("%.2f %d %d",c,m,n);
fclose(fp);
fclose(fg);
return 0;
}
求問為什么它輸出到螢屏上什么也沒有,哪里錯了?
uj5u.com熱心網友回復:
應該會輸出三個值uj5u.com熱心網友回復:
#include <stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp,*fg;
int a[4];
int i,s=0;
int m,n;
float c;
if((fp=fopen("c:\\score.txt","r"))==NULL)
{
printf("File open error!\n");
exit(0);
}
for(i=0;i<4;i++)
{
fscanf(fp,"%d",&a[i]);
s+=a[i];
}
c=s/4.0;
m=a[0];n=a[0];
//for(i=0;i<4;i++)
for(i=1;i<4;i++)
{
if(m<a[i])
m=a[i];
if(n>a[i])
n=a[i];
}
if((fg=fopen("c:\\result.txt","w"))==NULL)
{
printf("File open error!\n");
exit(0);
}
fprintf(fg,"%.2f %d %d\n",c,m,n);
printf("%.2f %d %d\n",c,m,n);
fclose(fp);
fclose(fg);
return 0;
}
供參考~
代碼沒發現什么問題
uj5u.com熱心網友回復:
成績個數未知;所以for回圈里i<4不符合題意uj5u.com熱心網友回復:
謝謝各位大佬轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/34173.html
標籤:C語言
上一篇:關于Qt顯示坐標系的問題
下一篇:救命!!!
