用字符串的形式输入两个数字如scanf("%s",a)编写函数将两个字符串转换为数值并输出这两个

用字符串的形式输入两个数字如scanf("%s",a)编写函数将两个字符串转换为数值并输出这两个用字符串的形式输入两个数字如scanf("%s",a)编写函数将两个字符串... 用字符串的形式输入两个数字如scanf("%s",a)编写函数将两个字符串转换为数值并输出这两个用字符串的形式输入两个数字如scanf("%s",a)编写函数将两个字符串转换为数值并输出这两个数和差积商的值

 
用字符串的形式输入两个数字(如,scanf("%s",a)),编写函数将两个字符串转换为数值,并输出这两个数和差积商的值。
要求,除了#include<stdio.h>语句外,不允许有其他任何包含语句,否则0分。

请参考下列输入输出示例:
例1,
输入:
请输入两个数字:
3.5
2.82
输出:
3.5+2.82=6.32
3.5-2.82=0.68
3.5*2.82=9.87
3.5/2.82=1.24113
要求,除了#include<stdio.h>语句外,不允许有其他任何包含语句
请参考下列输入输出示例:
例1,
输入:
请输入两个数字:
3.5
2.82
输出:
3.5+2.82=6.32
3.5-2.82=0.68
3.5*2.82=9.87
3.5/2.82=1.24113

例2,
输入:
请输入两个数字:
2.82
3.5
输出:
2.82+3.5=6.32
2.82-3.5=-0.68
2.82*3.5=9.87
2.82/3.5=0.80571

例3,
输入:
请输入两个数字:
2.82
ab3.5
输出:
字符串"ab3.5"无法转换成数字!请重新输入两个数字。
请输入两个数字:
展开
 我来答
laobishi080
2016-06-16 · TA获得超过760个赞
知道小有建树答主
回答量:164
采纳率:87%
帮助的人:44.8万
展开全部
#include "stdio.h"

int check(char a[])
{
if((a[0]>9||a[0]<0)&&a[0]!='-')
{
printf("字符串“%s”无法转成数字!请重新输入两个数字。",a);
return -1;
}
for(int i=1;i<strlen(a);i++)
if((a[i]>9||a[i]<0)||a[i]!='.')
{
printf("字符串“%s”无法转成数字!请重新输入两个数字。",a);
return -1;
}
return 1;
}

float assign(char a[])
{
float m=0;
int light1=1;
int light2=10;
if(a[0]=='-')
light1=0;//首位变负号
for(int i=0;i<strlen(a);i++)
{
if(a[i]=='.')break;
m=m*10+(a[i]-'0');
}
for(;i<strlen(a);i++)
{
m=m+(a[i]-'0')/light2;
light2=light2*10;
}
if(light1==0)
m=0-m;
return m;
}

int main()
{
char a[]="\0";
char b[]="\0";
float m,n;
while(1)
{
printf("请输入两个数字:\n");
scanf("%s",a);
scanf("%s",b);
if(check(a))
m=assign(a);
if(check(b))
n=assign(b);
if(check(a)&&check(b))
{
printf("%s+%s=%f",a,b,m+n);
printf("%s-%s=%f",a,b,m-n);
printf("%s*%s=%f",a,b,m*n);
if(n==0)
{
printf("除数不能为0\n");
break;
}
printf("%s/%s=%f",a,b,m/n);
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式