#include <stdio.h>
int main(void) {
double xx[10], yy[5], max;
int kk[10] = {0}, maxj, i, j, yindex = 0;
for(i = 0; i < 10; i++) {
scanf("%lf", &xx[i]);
}
for(i = 0; i < 5; i++) {
for(j = 0; j < 10; j++) {
if(kk[j] == 0) {
max = xx[j];
maxj = j;
break;
}
}
for(j = 1; j < 10; j++) {
if(xx[j] > max && kk[j] == 0) {
max = xx[j];
maxj = j;
}
}
kk[maxj] = 1;
yy[yindex++] = max;
}
for(i = 0; i < 5; i++) {
printf("%.1lf ", yy[i]);
}
return 0;
}
题目一:
#include <stdio.h>
int main()
{
int cnt[3];//票数
char nr[3][40]={0};//3个投票内容
int n;//投票的人数
int i,j,t;
printf("请输入投票的人数:");
scanf("%d",&n);
getchar();//接收回车符
printf("请输入3个投票内容:");
for(i=0;i<3;i++)
scanf("%s",nr[i]);
for (i=0;i<3;i++)
{
printf("请对候选人%d的",i+1);
for(j=0;j<3;j++)
printf("%s ",nr[j]);
printf("\b进行投票:");
cnt[i]=0;
for(j=0;j<n;j++)
{
scanf("%d",&t);
cnt[i] += t; //累加3项内容的票数
}
}
//判断票数
if (cnt[0]>cnt[1] && cnt[0] > cnt[2])
{
printf("候选人1胜出");
}else if (cnt[1]>cnt[0] && cnt[1]>cnt[2])
{
printf("候选人2胜出");
}else
printf("候选人3胜出");
return 0;
}
题目二:
#include <stdio.h>
//判断i是否在数组中
int isInarray(int index[],int n,int pos)
{
int i;
for (i=0;i<n;i++)
{
if(index[i] == pos) return 1;
}
return 0;
}
int main()
{
double xx[10],yy[5],max;
int i,j,k,index[5];
for (i=0;i<10;i++)//输入10个数
{
scanf("%lf",&xx[i]);
}
//5次循环
for (i=0;i<5;i++)
{
//找一个不再index[5]中的值
for(j=0;j<10;j++)
{
if(!isInarray(index,i,j))
break;
}
//记录临时最大值
max = xx[j];
index[i] = j;
//查找比max更大的值
for (j=0;j<10;j++)
{
if ( (!isInarray(index,i,j)) && xx[j] > max )
{
max = xx[j];
index[i] = j;
}
}
yy[i] = max;
}
//输出最大的5个数
for (i=0;i<5;i++)
{
printf("%g ",yy[i]);
}
return 0;
}