编写简单的单片机c语言程序 1、指定数组找最大值 2、排序

 时间:2024-10-19 14:46:26

#include&l隋茚粟胫t;stdio.h>

#defineNR10//数组元素个数

/*从主函数开始*/

intmain(intargc,char**argv)

{

intar[NR];

inti;

fprintf(stdout,"请输入%d个整数:\n",NR);

/*获取并检查用户输入*/

while(1)

{

/*循环获取NR个数据*/

for(i=0;i<NR;i++)

{

if(fscanf(stdin,"%d",&ar[i])!=1)

{

fprintf(stdout,"输入错误!请重新输入:\n");

while(getchar()!='\n');//丢弃多余非法字符

break;//打破内层for循环

}

}

/*检查是否获取到NR个数据*/

if(i!=NR)

{

continue;

}

else

{

break;

}

}

/*查找最大值和最小值*/

intmax,min;

max=ar[0];//假定第一个数为最大值

min=ar[0];//同时假定也第一个数为最大值

/*从第二个数开始比较查找最值*/

for(i=1;i<NR;i++)

{

if(ar[i]>max)//最大值

{

max=ar[i];

}

if(ar[i]<min)//最小值,不能使用elseif,否则会跳过比较

{

min=ar[i];

}

}

fprintf(stdout,"最大值为:%d最小值为:%d\n",max,min);

/*接下来:查找第二大值*/

intsecond;

/*先获取前两个数的第一大和第二大值*/

ar[0]>ar[1]?(max=ar[0],second=ar[1]):\

(max=ar[1],second=ar[0]);

/*从第2个数开始比较查找*/

for(i=2;i<NR;i++)

{

if(ar[i]>max)//查找最大值:目的是为了比较第二大值

{

second=max;//先把最大值保存给第二大值

max=ar[i];

}

elseif(second<ar[i])//比最大值小的数再看看是否大于第二大值

{

second=ar[i];

}

}

fprintf(stdout,"第二大值为:%d\n",second);

return0;

}

编写简单的单片机c语言程序 1、指定数组找最大值 2、排序

扩展资料

c语言程序求数组内所有数的和:

通过索引的方式就可以访问到数组内部的元素,索引是从0到数组长度-1。

数组点Lenth就是数组的长度。

c语言程序冒泡排序:

比较相邻的两个元素的大小,如果第一个比第二个大就互换一下。

然后每一对都做如上操作,如此一来最后一个元素肯定是最大的数了。

除了最后一个元素,重复以上步骤。然后倒数第二个就是次大的值了

一次按照这个逻辑直到没有任何数字可以比较了。

参考资料来源:百度百科—c语言

NI的DAQ系统的组成有哪些? 光电效应为什么调零电流表 matlab最值问题求解 c语言如何忽略前导零 手把手教你matlab运算符和表达式
热门搜索
舒畅图片 砚台图片 性感少女漫画 褥疮图片 烟熏妆图片