C语言 编一个程序,找到二十个数中两个最大和两个最小的数

C语言 编一个程序,找到二十个数中两个最大和两个最小的数原题如下(4.6题)

#include <stdio.h>
int main(void)
{
int i,max1,max2,min1,min2,sz[20]={39,22,82,32,48,29,-88,20,18,42,52,-17,63,12,77,68,-93,73,16,19};
printf("  整数类型数组的20个数据如下:\n");
for(i=0;i<20;i++)
printf(" %d",sz[i]);
min1=sz[0];
for(i=1;i<20;i++)
if(min1>sz[i])
min1=sz[i];
min2=sz[0];
for(i=1;i<20;i++)
if(min2>sz[i] && sz[i]>min1)
min2=sz[i];
max1=sz[0];
for(i=1;i<20;i++)
if(max1<sz[i])
max1=sz[i];
max2=sz[0];
for(i=1;i<20;i++)
if(max2<sz[i] && sz[i]<max1)
max2=sz[i];
printf("\n  min1 = %d  min2 = %d  max2 = %d  max1 = %d\n",min1,min2,max2,max1);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-06
#include <stdio.h>
main()
{
int a[20],i,j,t;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
for(j=i;j<20;j++)
if(a[i]<=a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("max: %d %d\n",a[0],a[1]);
printf("min: %d %d\n",a[19],a[18]);
}

追问

大佬能改成从.DAT文件中读取数据 (scanf这部分改掉)再输出结果吗 谢谢!!

第2个回答  2018-05-06
// 诶诶,人家要求从文件读取,你们别那么懒

#include <stdio.h>
#include <stdlib.h>

#define arr(name, length) arr##name[(int)(length)]

#define Amount_integer 20

#if Amount_integer < 2
#error Program integer amount lower than 2 unsupported
#endif


static const char *getFileUrl(void);

int main(int argc, char *argv[])
{
FILE *fp;
if((fp = fopen(getFileUrl(), "r")) != NULL)
{
int arr(Max, 2) = {0}, arr(Min, 2) = {0};
size_t count = 0u;
if(fscanf(fp, "%d%d", arrMax, arrMax+1) == 2)
{
memcpy(arrMax, arrMin, 2 * sizeof(int));
int temp;

for(count = 3; count<=Amount_integer; count++)
{
if(fscanf(fp, "%d", &temp) == 1)
arrMax[0]>arrMax[1]?
temp>arrMax[1]?arrMax[1]=temp::
temp>arrMax[0]?arrMax[0]=temp:,
arrMin[0]<arrMin[1]?
temp<arrMin[0]?arrMin[0]=temp::
temp<arrMin[1]?arrMin[1]=temp:;
else break;
}
if(count>Amount_integer)
{
fprintf(stdout, 
"Two largest numbers in the list are: %d %d.\n", 
arrMax[0], 
arrMax[1]);
fprintf(stdout, 
"Two samllest numbers in the list are: %d %d.\n", 
arrMin[0], 
arrMin[1]);
}
}
fclose(fp);
if(count>Amount>integer) return EXIT_SUCCESS;
}
return EXIT_FAILURE;
}

static const char *getFileUrl(void)
{
// 需要按实际情况修改
static char url[] = "TWOMM.DAT";
return url;
}

追问

大佬 这里的问题要怎么改哦

追答

arrMax[0]>arrMax[1]?
temp>arrMax[1]?arrMax[1]=temp:temp:
temp>arrMax[0]?arrMax[0]=temp:temp,
arrMin[0],xcode没想到这么妖怪

相似回答