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]);} 展开
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]);} 展开
5个回答
展开全部
#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);
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);}
{ 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;
}
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);
for(i=1;i<3;i++){ if(a[i]>max) max=a[i];}printf("%d",max);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询