1.输入一个大于3的整数n,判定它是否为素数(prime,又称质数)
思路:采用的算法是,让n被i除(i的值从2到n-1),如果n能被2~n-1的任何一个整数整除,则表示n不是素数,此时i不然小于n

#include<stdio.h>
int main() {
    int n, i;
    printf("please enter a integer number,n=?");
    scanf("%d", &n);
    for (i = 2;i < n;i++)
        if (n % i == 0)break;
    if (i < n) printf("%d is not a prime.\n", n);
    else printf("%d is  a prime.\n", n);
    return 0;
}

image.png
程序改进:其实n不必2~(n-1)的各整数去除,秩序被2~根号n的整数除即可

#include<stdio.h>
#include<math.h>
int main() {
    int n, i,k;
    printf("please enter a integer number,n=?");
    scanf_s("%d", &n);
    k = sqrt(n);
    for (i = 2;i <=k;i++)
        if (n % i == 0)break;
    if (i <=k) printf("%d is not a prime.\n", n);
    else printf("%d is  a prime.\n", n);
    return 0;
}

image.png

2.求100~200全部素数

#include<stdio.h>
#include<math.h>
int main() {
    int n, i,k,m=0;
    for (n = 101;n < 201;n = n + 2) {
        k = sqrt(n);
        for (i = 2;i <= k;i++)
            if (n % i == 0)break;
        if (i > k) {
            printf("%d ", n);
            m++;
        }
        if (m % 10 == 0)printf("\n");
    }
        printf("\n");
    return 0;
}

image.png

3.从键盘上任意输入n个整数,用冒泡法按从小到大的排序,并在屏幕上显示出来
解析:冒泡法排序的基本思想:从第一个数开始依次对相邻两数进行比较,如次序对则不进行任何操作,次序不对则使这两个数交换位置。第一遍的(n-1)次比较后,最大的数已经放到最后。

#include<stdio.h>
int main() {
    int data[10];
    int i, j, t;
    printf("intput 10 numbers:\n");
    for (i = 0; i < 10; i++)
        scanf_s("%d", &data[i]);
    for(j=0;j<9;j++)
        for(i=0;i<9-j;i++)
            if(data[i]>data[i+1])
            {
                t = data[i];
                data[i] = data[i + 1];
                data[i + 1] = t;
            }
    printf("the sorted number:\n");
    for (i = 0; i < 10; i++)
        printf("%d", data[i]);
    return 0;
}

image.png

4.有一个3*4 的矩阵,要求编程求出最大的那个元素的值,以及其所在的行号和列号
打擂台算法:

#include<stdio.h>
int main() {
    int a[3][4] = { {1,2,3,4},{9,8,7,6},{-10,10,-5,2} };
    int i, j, row = 0, colum = 0,max;
    max = a[0][0];
    for(i=0;i<=2;i++)
        for(j=0;j<=3;j++)
            if(a[i][j]>max)
            {
                max = a[i][j];
                row = i;
                colum = j;
            }
        printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);
    return 0;
}

image.png

5.青年歌手参加歌曲大奖赛,有10个评委对他们进行打分,试编程求这位选手的平均分(去掉一个最高分和一个最低分),并在屏幕上输出去掉的最高分和最低分及这位选手的平均分。

#include<stdio.h>
int main() {
    int  a[10];
    float sum = 0.0;
    int i, j,t;
    printf("\n输入评委所打的分数:\n");
    for (i = 0; i < 10; i++)
        scanf_s("%d", &a[i]);
    for (i = 0; i < 9; i++) {
        for (j = i + 1; j < 10; j++) {
            if (a[i] > a[j])
            {
                t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
        }
    }
    for (i = 0; i < 10; i++)
        printf("%d\t", a[i]);
    for (i = 1; i < 9; i++) {
        sum = sum + a[i];
    }
        printf("max=%d\nmin=%d\navg=%f\n",a[9], a[0],(float)sum/8.0 );
    return 0;
}

image.png


波波鱼
4 声望3 粉丝