【每日编程-435期】西北农林科技大学上机题(二)

教育   2025-02-02 10:03   江西  

西北农林科技大学上机题(二)


每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399



输入几个数,把素数找出,由大到小排序输出。

输入样例:

6 11 5 10 13 35 9

输出样例:

3 5 11 13

解决方法:

(1)代码实现:

#include <stdio.h>

int main()
{
    int a[100];
    int i = 0;
    char x;
    while (x != '\n'//遇见输入换行符时跳出循环
    {
        scanf("%d", &a[i]); //scanf函数遇到空格就结束输入了
        x = getchar();
        ++i;
    }
    int j = 0, k = 0, temp = 0, s = 0;
    int b[i]; //这个数组用于存素数
    for (j = 0; j < i; ++j)
    {
        for (k = 2; k < a[j]; ++k) //把a[j]从2开始至 a[j]-1 除一遍,如果都除不尽,则说明是素数
        {
            temp = a[j] / k;
            if (a[j] == k * temp)
            {
                break;
            }
        }
        if (k == a[j] && a[j] > 1)
        {
            b[s] = a[j];
            ++s;
        }
    }
    /*接下来是排序部分,采用冒泡排序*/
    int flag = 0;
    temp = b[0];
    for (i = 0; i < s; ++i)
    {
        flag = 0;
        for (j = 1; j < s - i; ++j)
        {
            if (b[j - 1] > b[j])
            {
                temp = b[j - 1];
                b[j - 1] = b[j];
                b[j] = temp;
                flag = 1;
            }
        }
        if (flag == 0)
        {
            break;
        }
    }
    for (i = 0; i < s; ++i)
    {
        printf("%d ", b[i]);
    }
    return 0;
}

明日预告:西北农林科技大学上机题(三)

输入一个整数n,输出该整数中重复的数字,如果没有重复出现的数字则输出 No repeat number! 

输入样例:

2312626

输出样例:

2 6


灰灰考研
最全的【计算机考研】【软件考研】考研信息! 最丰富的共享资料! 最大程度上帮助学渣狗登上研究生大门!
 最新文章