请帮我做一道C语言的题:从键盘上输入四个整数,在程序中经过比较后,输出其中最大的一个

三、 从键盘上输入四个整数,在程序中经过比较后,输出其中最大的一个;(提示:可在程序中,将4个整数两两进行比较,取两个中较大的一个数,再与下一个数进行比较。经过3次比较后,即可找到最大的数。最小的数的找法也可用相同的方法)

你说的应该就是替换法,拿第一个数与剩下的数不断地比较,每次比较都把较大的那个数存储到中间变量max中,直到与所有的数都比较完为止(冒泡排序算法的原理),总共要比较次数为"总个数-1"次,代码如下:

#include<stdio.h>
#include<stdlib.h>
int main(){
 int a, b, c, d;
 int max; //中间变量,用来保存每次比较中最大的值
    printf("Please type four integers:\n");
    scanf("%d %d %d %d", &a, &b, &c, &d);
//第一次比较
//先比较出前两个数中最大的数,放到max中
    if(a > b){
     max = a;
    }else{ //b>a,b比a大
     max = b;
    }
//第二次比较
    if(c > max){ 
     max = c;
    } 
//第三次比较
    if(d > max){
     max = d;
    }
//最后输出4个整数中最大的值
    printf("The max = %d", max);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-26
#include<stdio.h>
main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
a=a>b?a:b;
a=a>c?a:c;
a=a>d?a:d;
printf("最大值是:%d",a);
}追问

能照提示的算法做一个吗?

追答

我这里a和b 比较,较大的数再和c比较 ,得出的较大数再和d 比较,比了三次。
不知道你提示的算法是不是这个意思?

本回答被提问者采纳
第2个回答  2012-04-27
#include<stdio.h>

void main ( )
{
int num[5];
int maxnum1;
int maxnum2;
int maxnum;
char i;
puts("请输入四个数:");
for(i=0;i<4;i++)
scanf("%d",&num[i]);
maxnum1= (num[0]>num[1])?num[0]:num[1];
maxnum2= (num[2]>num[3])?num[2]:num[3];
maxnum= (maxnum1>maxnum2)?maxnum1:maxnum2;
printf("%d\n",maxnum);
}
第3个回答  2012-04-27
#include<stdio.h>
main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b && a>c && a>d)
printf("最大值是:%d",a);
else if(b>a && b>c && b>d)
printf("最大值是:%d",b);
else if(c>a && c>b && c>d)
printf("最大值是:%d",c);
else
printf("最大值是:%d",d);

}追问

这个不行啊,我输入1,2,3,4 输出值为1

追答

输入错误,输入时用空格分开

追问

能照提示的算法做一个吗,谢谢

第4个回答  2012-04-27
#include <stdio.h>
int maxnum(int str[])
{
int k,num1,num2;
num1=str[0]>str[1]?str[0]:str[1];
num2=str[2]>str[3]?str[2]:str[3];
k=num1>num2?num1:num2;
return k;
}
int minnum(int str[])
{
int k,num1,num2;
num1=str[0]<str[1]?str[0]:str[1];
num2=str[2]<str[3]?str[2]:str[3];
k=num1<num2?num1:num2;
return k;
}
main()
{
int num[4],max,min;
for(int i=0;i<4;i++)
scanf("%d",&num[i]);
max=maxnum(num);
min=minnum(num);
printf("max=%d;min=%d\n",max,min);
}
相似回答