C语言中如何编 输入4个数 输出最大值和最小值?

要求用short定义,然后用强制转换。
用上if语句。。
小弟初学。
望高手相助。。(我相信这是道很简单的题。。)

采用数组来接收输入的4个数,然后给数组排序,最后只需要输出数组的第一个数和最后个数,具体代码如下:

    int i,j,tmp,num;
    int str[4];
    
    num=4;
    
    printf("请输入%d个整数:",num);//数
    for(i=0;i<num;i++)
        scanf("%d",&str[i]);
    
    for(i=0;i<num-1;i++)//冒泡排序,从小到大
        for(j=i+1;j<num;j++)
            if(str[i]>str[j])
            {tmp=str[i];str[i]=str[j];str[j]=tmp;}
    
    printf("最小数:%d:\n",str[0]);//最小数
    printf("最大数:%d:\n",str[3]);//最大数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-14
1.不是很明白你的short定义和强制转换

#include "stdio.h"
int main()
{
short input=0;//short定义
int max=0,min=0;
printf("请输入4个整数:");
for(int i = 0;i<4;i++)
{
scanf("%hd",&input);//%hd为短整型输入
if(i==0)
{
max = min = (int)input;//强制转换
}
else
{
if(max<input)
max = (int)input;//强制转换
if(min>input)
min = (int)input;//强制转换
}

}
printf("最大值是:%d 最小值是:%d \n",max,min);
return 0;
}本回答被提问者采纳
第2个回答  2008-04-14
不错不错。
第3个回答  2008-04-14
#include<iostream>
using namespace std;
int main()
{
short a,b,c,d;
int max,min;
cin>>a>>b>>c>>d;
if(a>b){max=a;min=b;}
else {max=b;min=a;}
if(c>max)max=c;
if(d>max)max=d;
if(c<min)min=c;
if(d<min)min=d;
cout<<"最大:"<<max<<"\n最小:"<<min;
return 0;
}