重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
创新互联公司主营庆城网站建设的网络公司,主营网站建设方案,成都App定制开发,庆城h5微信小程序开发搭建,庆城网站营销推广欢迎庆城等地区企业咨询
#includewindows.h
int main()
{
int arr[10] = {1,5,6,3,4,2,4,5,3,4};//创建一个数组,然后放入10个数
int max = 0;//定义一个数max,用来放打擂后的擂主
int i = 0;//定义一个数i,循环来遍历数组
int num = 0;//定义第几个数
while (i = 9) {
if (arr[i] max) {
max = arr[i];//当打擂成功时,将较大数赋值给max,作为新的擂主
num = i;
}
i++;//每次循环结束后给i加1,达到数组遍历的目的
}
printf("这10个数中最大的数为:%d,排在第%d位", max,num+1);
system("pause");
return 0;
}
扩展资料:
if (max(m,a[i])m),比较条件错误。
此时的比较条件,应该是擂主的数字和当前循环的数字进行比较,如果当前循环的数字比较大,则把擂主数字替换掉。反之,继续循环数字比较。
max(m,a[i])m,先把m和a[i]比较一次,再把此次的结果和m比较一次。比较的动作进行了两次,是不对的。
if...else...:
if 和 else 是两个新的关键字,if 意为“如果”,else 意为“否则”,用来对条件进行判断,并根据判断结果执行不同的语句。总结起来,if else 的结构为:
if(判断条件){
语句块1
}else{
语句块2
}
先定义一个包含学号和成绩的结构体类型,然后再编写一个通过打擂台取最小值的函数,返回最低成绩的结构体,最后输出。
#includestdio.h
struct stud{
int id;
int score;
};
struct stud findmin(struct stud a[],int n)
{int i,m=0;
for(i=1;in;i++)
if(a[i].scorea[m].score)m=i;
return a[m];
}
int main()
{ int n,i;
scanf("%d",n);
struct stud min,a[n];
for(i=0;in;i++)
scanf("%d%d",a[i].id,a[i].score);
min=findmin(a,n);
printf("min_id=%d\tmin_score=%d\n",min.id,min.score);
return 0;
}
使用数组是最为简便高效的办法,可以处理成千上万的数据。打擂台算法,可以用伪代码描述如下:
(1) 确定一个擂主(最简便的办法就是首个到场的即为擂主);
(2) 挑战者上台;
(3) 擂主和挑战者比较;
(4) 挑战者胜的话,挑战者做擂主,否则擂主卫冕(不用更改);
(5) 重复执行(2)~(4) 步骤,直到最后一个挑战者;
(6) 输出最后的擂主。
#include
#define N 10
int main()
{ int a[N],max,i;
for ( i=0;iN;i++ )
scanf("%d",a[i]);
max=a[0];
for (i=1;iN;i++)
if (a[i]max)max=a[i];
printf("最大值=%d\n",max);
return 0;
}
#includestdio.h
int main()
{ int a[5]= {12,10,25,6,3};
int min=100000;
int temp,id;
for(int i=0; i5; i++) //选择排序,实际只要i4即可
{ for(int j=i; j5; j++) //选出从a[i]开始到最后的数中的最小数min及其下标id
{ if(mina[j]) //这里最后多了一个分号
{ min=a[j]; //打擂台选最小值min
id=j; //最小值的下标
}
}
temp=a[i]; //把最小元素调换到当前最前的位置
a[i]=a[id];
a[id]=temp;
min=100000; //准备选下一轮最小值
}
for(int i=0; i5; i++) //输出升序排序后的数组元素
printf("%d ",a[i]);
}