8-12题

 

8.求解十个数中,最大的偶数

#include<stdio.h>
int main()
{
    int num[12];
    int maxn=0;
    for(int i=0;i<10;i++){
        scanf("%d",&num[i]);
        if(num[i]%2==0&&maxn<num[i]){maxn=num[i];}
    }
    printf("%d\n",maxn);
}

9.求大于平均数的数的个数

#include<stdio.h>
double num[102],sum=0;
int main()
{
    double ave;
    int i=0,ans=0;
    while(1){
        scanf("%lf",&num[i]);
        if(num[i]==0){break;}//输入为0,那么跳出循环,不再输入
        sum+=num[i];
        i++;
    }
    ave=sum/i;
    for(int j=0;j<i;j++){
        if(num[j]>ave){ans++;}
    }
    printf("%d\n",ans);
}

 

10.十个数的所有素数和

这个题究竟是什么意思?我们一般认为,初始化就是初始为0。这里肯定不是这个意思,而是我们在程序里不需要输入了,直接给他赋值!

 

#include<stdio.h>
int main()
{
    int a[10]={5,8,6,9,7,15,48,46,12,8};

    int sum=0;
    for(int i=0;i<10;i++){
        int flag=0;//记录是否是质数
        for(int j=2;j*j<=a[i];j++){
            if(a[i]%j==0){flag=1;break;}//如果i可以被自己小的某个数整除
                                    //而这个数又不是一,我们就把它标记为非质数
                                    //实际上,没有必要把小于i的数试完
                                    //到根号i就可以了
        }
        if(flag==0){printf("%d ",a[i]);sum+=a[i];}
    }
    printf("\n%d\n",sum);
}

11.矩阵对角线之和

找清楚位置就行了,由于我这样写,每个点只遍历了一次,所以不用考虑加重的问题

#include<stdio.h>
int main()
{
    int num[5][5];
    int sum=0;
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            scanf("%d",&num[i][j]);
            if(i==j||i+j==4){sum+=num[i][j];}
        }
    }
    printf("%d",sum);
}

12.矩阵边上的数字和

和上一题一样啊!

#include<stdio.h>
int main()
{
    int num[5][5];
    int sum=0;
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            scanf("%d",&num[i][j]);
            if(i==0||j==0||i==4||j==4){sum+=num[i][j];}
        }
    }
    printf("%d",sum);
}

 

posted @ 2018-05-14 17:14  断腿三郎  阅读(126)  评论(0编辑  收藏  举报