这两个怎么做,求解答

img

#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;
}