3
回答
c语言菜鸟求教!!!!一个关于三角形运行的问题
华为云4核8G,高性能云服务器,免费试用   
我是一名大二的学生,大一时没怎麽认证学习,大一第一学期的专业课c语言才刚过(64),所以现在重新自学c语言,我编了一个关于三角形的程序,源程序如下:#include<stdio.h>
main()
{
  float a,b,c;
    printf(" 请输入三个数:",a,b,c);
    scanf("%lf%lf%lf",a,b,c);
    if(a+b>c)
    if(a-b<c)
    printf("这三个数可以构成三角形的三条边:%lf%lf%lf",a,b,c);
    return 0;
}
build message 显示0 errors  0 warnings,但当我点击完build and run,键入一个数字时会出现这个程序已停止工作   windows正在检查解决此问题的方案  的情况,请各位高手赐教呀
举报
Mike.hjxs
发帖于7年前 3回/655阅
共有3个答案 最后回答: 7年前

修正过的代码如下:

#include <stdio.h>


int
main(void)
{
	float a, b, c;

	printf("请输入三个数:\n");
	scanf("%f%f%f", &a, &b, &c);

	if(a + b > c)
		if(a - b < c)
			printf("这三个数可以构成三角形:%f %f %f\n", a, b, c);

	return 0;
}

存在的问题有以下几个:

1、printf函数调用错误:printf(" 请输入三个数:",a,b,c);

2、scanf函数使用错误:scanf("%lf%lf%lf",a,b,c);,必须使用&取得变量地址

3、格式化参数使用错误:scanf("%lf%lf%lf",a,b,c);、printf("这三个数可以构成三角形的三条边:%lf%lf%lf",a,b,c);,float型应该对应使用%f,而不是%lf

4、代码风格不够好,不论是不是主函数都应该显式加上返回值

--- 共有 3 条评论 ---
Ruchee@DavidGu1985@gmail.co : 编程应做到零警告,使用%lf在gcc -Wall的编译命令下会出现警告,必须杜绝,%lf是对应double数据类型的格式符 7年前 回复
DavidGu1985@gmail.co貌似%lf也是可以的,:-) 7年前 回复
Mike.hjxs好的 我知道了 谢谢您的帮助 7年前 回复
顶部