关于scanf格式问题
本帖最后由 fishyou 于 2020-11-3 20:15 编辑#include <stdio.h>
#include <math.h>
main()
{
double a,b,c,s,area;
scanf("%lf,%lf,%lf",&a,&b,&c); //这个地方scanf("%lf,%lf,%lf",&a,&b,&c);和scanf("%lf %lf%lf",&a,&b,&c);有什么区别
printf("a=%f\n",a);
printf("b=%f\n",b);
printf("c=%f\n",c);
s=1.0/2*(a+b+c);
printf("s=%f\n",s);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f\n",area);
}
程序是给出三角形的边长,求出面积。
问题如上:使用scanf接收数据时,格式字符串里用空格可以正常输出,而用,分格就出错? 区别在于你输入的时候各个变量之间是以,隔开还是以空格隔开 scanf("%lf,%lf,%lf",&a,&b,&c); //这个就需要三个变量都以,隔开
和scanf("%lf %lf%lf",&a,&b,&c); //这个需要三个之间以空格隔开 输入时,我有对应的格式来输入,比scanf("%lf,%lf,%lf",&a,&b,&c);我输入3,4,5;
scanf("%lf %lf%lf",&a,&b,&c);输入的是3 4 5
都有严格按照对应的格式输入。但结果就是不一样。采用,作为分格的这种,变量b,c的值接收到不到,4和的值 fishyou 发表于 2020-11-3 20:10
输入时,我有对应的格式来输入,比scanf("%lf,%lf,%lf",&a,&b,&c);我输入3,4,5;
scanf("%lf %lf%lf",&a, ...
把你输入的最后那个分号去掉 C:\Users\ZZC\Desktop\1.jpg 本帖最后由 昨非 于 2020-11-3 20:14 编辑
fishyou 发表于 2020-11-3 20:10
输入时,我有对应的格式来输入,比scanf("%lf,%lf,%lf",&a,&b,&c);我输入3,4,5;
scanf("%lf %lf%lf",&a, ...
3,4,5
a=3.000000
b=4.000000
c=5.000000
s=6.000000
6.000000
3 4 5
a=3.000000
b=4.000000
c=5.000000
s=6.000000
6.000000
两种情况的结果一样的 昨非 发表于 2020-11-3 20:13
两种情况的结果一样的
难道是软件的问题? fishyou 发表于 2020-11-3 20:14
难道是软件的问题?
你多输入了一个分号吧 fishyou 发表于 2020-11-3 20:14
难道是软件的问题?
过着看看你的逗号是中文还是英文 昨非 发表于 2020-11-3 20:15
过着看看你的逗号是中文还是英文
还真是这个原因,晕
页:
[1]