有C语言大神没?求抱大腿解决俩问题,在线等挺急的
(1)文件“身高.txt”中存储了若干位同学的身高(cm),编程读取文件中前3位同学的身高,比较出最高和最低的数据,并将结果输出到显示器中。(2)运用switch语句实现...
(1)文件“身高.txt”中存储了若干位同学的身高(cm),编程读取文件中前3位同学的身高,比较出最高和最低的数据,并将结果输出到显示器中。
(2)运用switch语句实现多分支结构,编写四则运算(注意除数为0的处理方法)的程序,完成输入表达式(如:3*3=),计算表达式的值,最后连同表达式及计算结果一并写入文件“算术题.txt”文件中。 展开
(2)运用switch语句实现多分支结构,编写四则运算(注意除数为0的处理方法)的程序,完成输入表达式(如:3*3=),计算表达式的值,最后连同表达式及计算结果一并写入文件“算术题.txt”文件中。 展开
1个回答
展开全部
(1)//新建三个float型变量存储身高
float a,b,c,temp;
//打开文件,读取身高
FILE *pFile = fopen("身高.txt", "rt");
fscanf(pFile,"%f",&a);//读取身高
fgetc(pFile);//读取分隔符
fscanf(pFile,"%f",&b);
fgetc(pFile);
fscanf(pFile,"%f",&c);
fgetc(pFile);
fclose(pFile);
//身高排序
if(a>b){temp=a;a=b;b=temp;}
if(a>c){temp=a;a=c;c=temp;}
if(b>c){temp=c;c=b;b=temp;}
//排序后 a<b<c
printf("最高为%f,最低为%f",c,a);
(2)
char s[256],flag;
int a,b;
printf("输入表达式:");
for(int i=0;i<256;i++)
{
scanf("%c",&s[i]);
if(s[i]=='\n') {s[i]='\0';break;}
}
//获取表达式中的三个数字和符号
sscanf(s,"%d%c%d=",&a,&flag,&b);
FILE *pFile = fopen("算术题.txt", "w");
//表达式判断
switch(flag)
{
case '+': {fprintf(pFile,"%d%c%d=%d",a,flag,b,a+b);break;}
case '-':{fprintf(pFile,"%d%c%d=%d",a,flag,b,a-b);break;}
case '*':{fprintf(pFile,"%d%c%d=%d",a,flag,b,a*b);break;}
case '/':if (b==0) {fprintf(pFile,"wrong!\n");break;}
else {fprintf(pFile,"%d%c%d=%f",a,flag,b,double(a/b));break;}
default:fprintf("error!\n");
}
fclose(pFile);
追问
第二问的流程图是什么样的?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询