C语言求三个整数a,b,c的最大值问题

C语言求三个整数a,b,c的最大值问题..帮忙看下错在哪里,写清楚错在哪里,另外用if也写一个出来#include<stdio.h>voidmain(){inti,j,m... C语言求三个整数a,b,c的最大值问题..帮忙看下错在哪里,写清楚错在哪里,另外用if也写一个出来#include <stdio.h>
void main()
{
int i,j,max,min,a[3],t,a,b,c;printf("请输入a,b,c的值:");scanf("%d%d%d",&a,&b,&c);
for (i=1;i<4;i++)
{scanf("%d",&a[i]);
}for(i=0;i<3;i++)
for(j=0;j<3-i;j++) if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}printf("最大值为%d\n",a[0]);
printf("最小值为%d\n",a[2]);}
展开
 我来答
听不清啊
高粉答主

2017-10-27 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
#include <stdio.h>
  main()
{
int i,j,max,min,a[3],t;
printf("请输入a,b,c的值:");
for (i=0;i<3;i++)
{scanf("%d",&a[i]);
}for(i=0;i<2;i++)
for(j=0;j<2-i;j++) if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}printf("最大值为%d\n",a[0]);
printf("最小值为%d\n",a[2]);}

/*=======================*/
#include <stdio.h>
 main()
{
int i,j,max,min,t,a,b,c;printf("请输入a,b,c的值:");scanf("%d%d%d",&a,&b,&c);
max=min=a;
if(b>max)max=b;
  else if(b<min)min=b;
if(c>max)max=c;
  else if(c<min)min=c;
printf("最大值为%d\n",max);
printf("最小值为%d\n",min);}

匿名用户
2013-10-22
展开全部
这个程序有一些没有用到的地方,就是说可以去掉,没有什么用处。其实求C语言求三个整数a,b,c的最大值问题,不必用到for循环。这样会使程序变得很繁杂。我把用if语句的求最大值的程序写出来给你看一下吧,希望对你有所帮助。#include<stdio.h>
void main()
{
int a,b,c,p,max;
printf("请输入a,b,c三个数字::");
scanf("%d %d %d",a,b,c);
if(a>b)
p=a;
else
p=b;
if(p<c)
max=c;
printf("最大值为:max=%d",max);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-22
展开全部
第一:for (i=1;i<4;i++)
{ scanf("%d",&a[i]);
}这里,a[]的下标是从0到2,即0,1,2,而你的写法是访问了1,2,3,会造成内存越界第二:你整个过程写得太复杂,我写个简化的第三:对于你补充的问题,你的程序没有语法错误,所以可以运行。 #include "stdio.h" void main(){int a[3], max, min;int i;for(i = 0; i < 3; i++) {scanf("%d", &a[i]);}max = min = a[0];for(i = 1; i < 3; i++){max = max > a[i] ? max: a[i];min = min < a[i]? min: a[i];}printf("最大值为%d\n最小值为%d\n", max, min);} 如果要用if写#include "stdio.h" void main(){int a[3], max, min;int i;for(i = 0; i < 3; i++) {scanf("%d", &a[i]);}max = min = a[0];for(i = 1; i < 3; i++){if(max < a[i]) max = a[i];if(min > a[i]) min = a[i];}printf("最大值为%d\n最小值为%d\n", max, min);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-22
展开全部
看起来是尝试利用冒泡排序把最大值,有几个错误,参加注释:#include <stdio.h>
int main()
{
int i,j,max,min,a[3],t;//,a,b,c; //两个a[3]和a有冲突
printf("请输入a,b,c的值:");
//scanf("%d%d%d",&a,&b,&c); // 好像没用
for (i=0;i<3;i++){ // 3个数,从0<=i<3
scanf("%d",&a[i]);
}
for(i=0;i<3;i++)
for(j=i+1;j<3;j++) // 冒泡排序,内层循环从i+1到结尾
if(a[i]<a[j]){ // 是i和以后的所有值比较
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("最大值为%d\n",a[0]);
printf("最小值为%d\n",a[2]);
// the second method
int maxv,minv;
if(a[0]>a[1]){
maxv = a[0]>a[2]?a[0]:a[2];
minv = a[1]<a[2]?a[1]:a[2];
}else{//a[0]<a[1]
maxv = a[1]>a[2]?a[1]:a[2];
minv = a[0]<a[2]?a[0]:a[2];
}
printf("最大值为%d\n",maxv);
printf("最小值为%d\n",minv);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-22
展开全部
你还真勤奋,居然写这么多。好像要排序一样。max=a[0];
for(i=1;i<3;i++){ if(a[i]>max) max=a[i];}printf("%d",max);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式