一个c语言问题 拜求高人指教我输入a b c 后 为什么不管输入的是什么数 输出总是 “没有根”呢?

作者&投稿:阳寒 (若有异议请与网页底部的电邮联系)
c语言 求a b c中最大值,不管输入什么,输出的最大值都是a,为什么?没错的地方呀!!!!~

亲 你的代码我确实看不懂。

#include #include int max(int a,int b){ if(a>b) return a; else return b;}int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d",max(a,max(b,c))); return 0;}

你的定义也有问题,应该在开始就定义还有你的printf格式为printf("text格式转换符",D);scanf("%d,%d,%d",&a,&b,&c);
精简后为:
#include
void main()
{
int a,b,c;
int D;
scanf("%d,%d,%d",&a,&b,&c);
D=a+b+c;
printf("%d",D);
}
你试着运行一下看看

请楼主注意在C语言中,输入或者输出double型数据的时候需要使用%lf格式控制符的,对于%f,当变量被定义为floa类型的时候才使用的,请楼主注意!程序改正之后如下所示:

# include <stdio.h> 

# include <math.h> 

void main() 

double a,b,c,dt,x1,x2,sdt,temp; 

printf("请输入a,b,c
"); 

scanf("%lf%lf%lf",&a,&b,&c);//此句进行修改,格式控制符使用%lf

dt=(b*b)-(4*a*c);

if(a==0) 

printf("这不是二次函数,请再次输入"); 

else 

{if(dt<0) 

printf("没有根
"); 

else 

sdt=sqrt(b*b-4*a*c); 

temp=(-b)/(2*a); 

x1=temp+(sdt/(2*a)); 

x2=temp-(sdt/(2*a)); 

printf("%f
",x1); 

printf("%f
",x2); 

}

程序的运行结果如下(当a输入4,b输入10,c输入6的时候):



你把数据类型的double 改为float就行了!

#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,dt,x1,x2,sdt,temp;
printf("ÇëÊäÈëa,b,c\n");
scanf("%f%f%f",&a,&b,&c);
while(a==0)
{
printf("Õâ²»ÊǶþ´Îº¯Êý£¬ÇëÔÙ´ÎÊäÈë");
scanf("%f%f%f",&a,&b,&c);

}

dt=(b*b)-(4*a*c);
sdt=sqrt(b*b-4*a*c);
temp=(-b)/(2*a);

if(dt<0)
printf("ûÓиù");
else
if (dt==0) //x1=x2
{
x1 = temp;
printf("Ö»ÓÐÒ»¸ö¸ù:\nx=%f\n",x1);

}
else
{

x1=temp+(sdt/(2*a));
x2=temp-(sdt/(2*a));
printf("ÓÐÁ½¸ö¸ù,·Ö±ðΪ:\n");
printf("%f",x1);
printf("%f\n",x2);
}
}

运行一下给分吧.呵呵

# include <stdio.h>
# include <math.h>
void main()
{
float a,b,c,dt,x1,x2,sdt,temp;
printf("请输入a,b,c\n");
scanf("%f%f%f",&a,&b,&c);
dt=(b*b)-(4*a*c);
if(a==0)
printf("这不是二次函数,请再次输入");
else
{if(dt<0)
printf("没有根");
else
{
sdt=sqrt(b*b-4*a*c);
temp=(-b)/(2*a);
x1=temp+(sdt/(2*a));
x2=temp-(sdt/(2*a));
printf("%f",x1);
printf("%f",x2);
}
}
}


治多县15069498158: 一个C语言问题,求高手指教! -
史承健朗: 典型的求素数的代码,这是等于是可能的如果不是素数,那么k不等到i就break跳出循环了,这个你明白所以k小雨i的时候就不是素数如果是素数,那么k会循环到i,这个是for的机制得出的.那么k...

治多县15069498158: C语言的小问题求高人指点 -
史承健朗: #include<stdio.h> int main() { int one ,tow,five; for(five=0;five<40;five++) for(tow=0;tow<100;tow++) for(one=0;one<200;one++)if ( one+tow+five==60 && one+tow*2+five*5==200) printf("一元的%d张,二元的%d张,五元的%d张\n",one,tow,five); getchar(); getchar(); }

治多县15069498158: c语言 求高人指导 谢谢 输入四个整数,按从小到大输出.我的程序出了什么问题? -
史承健朗: 你的函数调用错了,应该用名传递,你的swap函数用的是值传递,根本没有交换两个数,如果你硬要用你的想法,可以用引用或指针.或者用冒...

治多县15069498158: 一个C语言的问题,向高人跪求答案~~
史承健朗: #include<stdio.h> #include<conio.h> #include<string.h> #define MaxLen 256 main() { char s[MaxLen] = {0}; char a[MaxLen] = {0}; printf( "输入主串\n" ); scanf( "%s",s ); printf( "输入子串\n" ); scanf( "%s",a ); int count =0; char* p = s;...

治多县15069498158: C语言的题目如下 . 我想要连着输入多组的数据, 但是不行, 求高人指教啊 -
史承健朗: #include main(){ int i,j,m=8,n; int a[7][2],b[7]; int c; scanf("%d", for(i=1;i<=c;i++) { m=8;&#...

治多县15069498158: 一个简单的C语言算法问题,想拜师 -
史承健朗: 呵呵那就这样:先算x+y 是7.2 ,然后算(int)7.2 是7; 这时候就是:x+a%3*8%2/4 这个先乘除后加减,后面部分先算是: 7%3 = 1;1*7 = 7 ; 7%2 = 1 ; 1/4 = 0;所以结果还是2.5 其实从全是整数且存在)%2/4就知道后面只能是0,因为)%2后肯定比2小更比4小,整数除法小的除大的商当然是0了

治多县15069498158: c语言小问题求高人解决!!!
史承健朗: 在C语言里,定义函数的时候返回值类型可以不写,默认为int,但是C++里是不行的,C++的要求比较严格,函数的返回值必须写,否则就是iso c++ forbids declaration of 'f' no type,你这里虽然写的是C,但用的是C++编译器来编译,当然要符合C++的规范.

治多县15069498158: 一个C语言的编程题,我写好了,但是运行还是出错,求高人指点
史承健朗: 你那个子函数那里出错了. 修改成这样就行了 void hprintf(int k,node p){ int c=k/2,i; for(i=0;i<k;i++) printf("%s\t\t\t\t\t%s\n",p->b[i].a,p->b[c].a); if(c<k) printf("\t\t\t\t\t%s\n",p->b[k].a);} 吧i放到上面

治多县15069498158: 请高人指点C语言问题 -
史承健朗: #include<iostream>#include<cmath> using namespace std; float fun(double i) { float PI=0; for(double j=1;j<=i;j++) { PI+=4*float((1/(2*j-1))*pow(-1,j+1)); } return PI; } void main() { float PI=0; double i=1; cout<<"n=20 "<<"π="<<fun(20)<<endl; cout...

治多县15069498158: 求高人指点 关于c语言问题
史承健朗: #include <stdio.h> void main() { int Num1=1,Num2=10,i,sum=0; for(i=Num1;i<=10;i++) { if(i%2!=0) { sum+=i; } } printf("sum=%d\n",sum); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网