关于C语言的问题 ,请求帮助啊~~~~
题目描述编写一个程序,输入a、b、c三个值,输出其中最大值。输入一行数组,分别为abc输出abc其中最大的数样例输入102030样例输出30这是我编的#include<s...
题目描述编写一个程序,输入a、b、c三个值,输出其中最大值。输入一行数组,分别为a b c输出a b c其中最大的数样例输入10 20 30样例输出30
这是我编的
#include<stdio.h>
main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
max=a;
}
else
if(b>c)
{
max=b;
}
else
if(c>a)
{
max=c;
}
else
printf("%d",&max);
}
有什么不对? 展开
这是我编的
#include<stdio.h>
main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
max=a;
}
else
if(b>c)
{
max=b;
}
else
if(c>a)
{
max=c;
}
else
printf("%d",&max);
}
有什么不对? 展开
6个回答
展开全部
请使用复合条件判断
#include<stdio.h>
main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if ( (a>b)&&(a>c) ) max=a;
else if ( (b>a)&&(b>c) ) max=b;
else max=c;
printf("%d",&max);
}
你的程序有些问题:
#include<stdio.h>
main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
max=a; //如果a大于b,a就算最大? a是否大于c还没判断呢
}
else
if(b>c)
{
max=b;
}
else
if(c>a)
{
max=c;
}
else
printf("%d",&max); // else用法错误,这句话是要在任何条件下都要执行的
}
检查程序错误的方法有很多,象这种情况比较简单的,你可以举例来手动验证。
用一组实际数据让a的值最大,去手动顺序走一遍程序,看结果是否正确;然后
再用b最大来走、c最大来走,a b c相同来走。基本上都有正确的结果后就差不
多了。
#include<stdio.h>
main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if ( (a>b)&&(a>c) ) max=a;
else if ( (b>a)&&(b>c) ) max=b;
else max=c;
printf("%d",&max);
}
你的程序有些问题:
#include<stdio.h>
main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
max=a; //如果a大于b,a就算最大? a是否大于c还没判断呢
}
else
if(b>c)
{
max=b;
}
else
if(c>a)
{
max=c;
}
else
printf("%d",&max); // else用法错误,这句话是要在任何条件下都要执行的
}
检查程序错误的方法有很多,象这种情况比较简单的,你可以举例来手动验证。
用一组实际数据让a的值最大,去手动顺序走一遍程序,看结果是否正确;然后
再用b最大来走、c最大来走,a b c相同来走。基本上都有正确的结果后就差不
多了。
更多追问追答
追问
还是不对,这是我们学校网站上的题,提交上去还是显示答案错误·····
追答
再改一下:
#include
main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if ( (a>=b)&&(a>=c) ) max=a;
else if ( (b>=a)&&(b>=c) ) max=b;
else max=c;
printf("%d\n",max);
}
展开全部
两个问题:
if(c>a)
{
max=c;
}
//else //这里不应该再有else了,你自己想想。
printf("%d",max); // 这里,max前面不应该有&号,不然会输出的是max的地址,而不是max的值
}
if(c>a)
{
max=c;
}
//else //这里不应该再有else了,你自己想想。
printf("%d",max); // 这里,max前面不应该有&号,不然会输出的是max的地址,而不是max的值
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先给两个正确的:
1)
#include<stdio.h>
int main()
{
int a,b,c,*max;
scanf("%d %d %d",&a,&b,&c);
if(a>b){max=&a;}else max=&b;
if(c>*max) max=&c;
printf("%d",*max);
return 0;
}
2)
#include<stdio.h>
int main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)max=a; else max=b; /*先求出 a,b 的最大值 ,非此即彼!*/
if(c>max) max=c; /*再求出 max,c 的最大值 c>max就是 c,否则不变*/
printf("%d",max);
return 0;
}
#include<stdio.h>
main() /*这种偷懒的习惯是不好的,加上int吧,int main() 才是标准 */
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
/*错误一,a>b只能得出a 是 a,b两个数的最大值,和c没什么关系了,
c>a的话,最大值c才对!*/
{
max=a;
}
else /* a<=b ;这里是正确的,注意 else if(b>c) 分开写 和一起写 没有什么不同*/
if(b>c)
{
max=b;
}
else /*错误二?
也不算错:a<=b && b<=c 时 c就是最大值
后面的比较完全无用了,只是排除了c==a */
if(c>a)
{
max=c;
}
else /*错误三,这是什么意? a<=b && b==c时max并没有赋值,输出啥呀??*/
printf("%d",&max); /*错误四printf("%d",max);才对!*/
/*错误五前面得出的!max并没有输出!*/
/*错误六路径不完整!没有覆盖所有情况!*/
/*写上返回语句,别偷懒!*/
}
这个是在你的那个上改的!如果非要加上大括号的话吧里面的,两个比较都加上大括号!
#include<stdio.h>
int main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b) /* a>b 非a即c */
{
if(c>a)max=c; /* c: c>a>b 比较两次 */
else max=a;/* a: a>=c && a>b */
}
else /* a<=b 非b即c */
{ if(b>c) max=b;/* b: a<=b && b>c 比较两次*/
else max=c; /* c: a<=b && b<=c */
}
/*
一共比较两次,赋值一次,共4条路径!
所有可能 都比较完了,可以得出结论了!
输出最大值:
*/
printf("%d",max);
return 0;
}
1)
#include<stdio.h>
int main()
{
int a,b,c,*max;
scanf("%d %d %d",&a,&b,&c);
if(a>b){max=&a;}else max=&b;
if(c>*max) max=&c;
printf("%d",*max);
return 0;
}
2)
#include<stdio.h>
int main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)max=a; else max=b; /*先求出 a,b 的最大值 ,非此即彼!*/
if(c>max) max=c; /*再求出 max,c 的最大值 c>max就是 c,否则不变*/
printf("%d",max);
return 0;
}
#include<stdio.h>
main() /*这种偷懒的习惯是不好的,加上int吧,int main() 才是标准 */
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
/*错误一,a>b只能得出a 是 a,b两个数的最大值,和c没什么关系了,
c>a的话,最大值c才对!*/
{
max=a;
}
else /* a<=b ;这里是正确的,注意 else if(b>c) 分开写 和一起写 没有什么不同*/
if(b>c)
{
max=b;
}
else /*错误二?
也不算错:a<=b && b<=c 时 c就是最大值
后面的比较完全无用了,只是排除了c==a */
if(c>a)
{
max=c;
}
else /*错误三,这是什么意? a<=b && b==c时max并没有赋值,输出啥呀??*/
printf("%d",&max); /*错误四printf("%d",max);才对!*/
/*错误五前面得出的!max并没有输出!*/
/*错误六路径不完整!没有覆盖所有情况!*/
/*写上返回语句,别偷懒!*/
}
这个是在你的那个上改的!如果非要加上大括号的话吧里面的,两个比较都加上大括号!
#include<stdio.h>
int main()
{
int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b) /* a>b 非a即c */
{
if(c>a)max=c; /* c: c>a>b 比较两次 */
else max=a;/* a: a>=c && a>b */
}
else /* a<=b 非b即c */
{ if(b>c) max=b;/* b: a<=b && b>c 比较两次*/
else max=c; /* c: a<=b && b<=c */
}
/*
一共比较两次,赋值一次,共4条路径!
所有可能 都比较完了,可以得出结论了!
输出最大值:
*/
printf("%d",max);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好为max赋个初值
if ( (a>b)&&(a>c) ) max=a;
else if ( (b>a)&&(b>c) ) max=b;
else max=c;
if ( (a>b)&&(a>c) ) max=a;
else if ( (b>a)&&(b>c) ) max=b;
else max=c;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
逻辑有问题,因为第一个a>b条件满足之后 后面语句都不会执行了.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解题有误。
要输入一个数组。肯定是要考察数组的知识,不是输入3个整数。
要输入一个数组。肯定是要考察数组的知识,不是输入3个整数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询