C程小问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 18:15:01
请问:
1.程序填空,不要改变与输入输出有关的语句。
编写程序,输入 3 个整数,计算并输出它们的平均值(结果保留2位小数)。
输入输出示例:
输入
1 2 3
输出
average = 2.00
#include <stdio.h>
int main(void)
{
int a, b, c;
double average;
scanf("%d %d %d",&a,&b,&c);
average=(a+b+c)/3.0;

/*---------*/
printf("average = %.2f\n", average);
}

【把average=(a+b+c)/3.0;改为average=(a+b+c)/3;为什么会出错】

2.scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%lf%lf", &a, &b, &c);
d=b*b-4*a*c;
if(a==0&&b==0&&c==0)
printf("参数都为零,方程无意义!\n");

else if(a==0&&b==0&&c!=0)
printf("a和b为0,c不为0,方程不成立\n");

else if(d==0){
printf("x1 = %0.2f\n", (-b+sqrt(d))/(2*a));
printf("x2 = %0.2f\n", (-b-sqrt(d))/(2*a));}

else if(d>0)
printf("

double 双精度说明符。单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

a==0&&b==0&&c==0是指a,b,c都为0,而a==b==c==0,由于“=”的右结合性,应先执行b=c再执行a=(b=c)运算.C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。