永发信息网

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

答案:5  悬赏:50  手机版
解决时间 2021-11-25 06:11
  • 提问者网友:容嬷嬷拿针来
  • 2021-11-24 05:47
C语言求三个整数a,b,c的最大值问题
最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-11-24 06:22
#include 
  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]{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}printf("最大值为%d
",a[0]);
printf("最小值为%d
",a[2]);}


#include 
 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(bif(c>max)max=c;
  else if(cprintf("最大值为%d
",max);
printf("最小值为%d
",min);}
全部回答
  • 1楼网友:上分大魔王
  • 2021-11-24 10:07
这个程序有一些没有用到的地方,就是说可以去掉,没有什么用处。其实求C语言求三个整数a,b,c的最大值问题,不必用到for循环。这样会使程序变得很繁杂。我把用if语句的求最大值的程序写出来给你看一下吧,希望对你有所帮助。#include
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(pmax=c;
printf("最大值为:max=%d",max);
  • 2楼网友:第幾種人
  • 2021-11-24 08:35
你还真勤奋,居然写这么多。好像要排序一样。max=a[0];
for(i=1;i<3;i++){ if(a[i]>max) max=a[i];}printf("%d",max);
  • 3楼网友:傲气稳了全场
  • 2021-11-24 07:38
第一: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);}
  • 4楼网友:狂恋
  • 2021-11-24 06:54
看起来是尝试利用冒泡排序把最大值,有几个错误,参加注释:#include
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] 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]}else{//a[0] maxv = a[1]>a[2]?a[1]:a[2];
minv = a[0]}
printf("最大值为%d\n",maxv);
printf("最小值为%d\n",minv);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯