c语言菜鸟求教!!!!一个关于三角形运行的问题

Mike.hjxs 发布于 2011/10/09 08:24
阅读 656
收藏 0
我是一名大二的学生,大一时没怎麽认证学习,大一第一学期的专业课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正在检查解决此问题的方案  的情况,请各位高手赐教呀
加载中
0
D
DavidGu1985@gmail.co
1.scanf("%lf%lf%lf",&a,&b,&c);
2.写程序风格也很重要,刚开始学习的时候更容易养成好习惯
Mike.hjxs
Mike.hjxs
谢谢您 太感谢了
0
Ruchee
Ruchee

修正过的代码如下:

#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、代码风格不够好,不论是不是主函数都应该显式加上返回值

Ruchee
Ruchee
@DavidGu1985@gmail.co : 编程应做到零警告,使用%lf在gcc -Wall的编译命令下会出现警告,必须杜绝,%lf是对应double数据类型的格式符
D
DavidGu1985@gmail.co
貌似%lf也是可以的,:-)
Mike.hjxs
Mike.hjxs
好的 我知道了 谢谢您的帮助
0
JavaGG
JavaGG

天书

 

Mike.hjxs
Mike.hjxs
我刚开始认真学 请您不要见笑
返回顶部
顶部