C语言输入50个正整数找出其中的素数并将其按升序排列
时间: 2023-06-27 08:01:28 浏览: 136
以下是用C语言实现输入50个正整数找出其中的素数并将其按升序排列的代码:
```c
#include <stdio.h>
// 判断是否为素数
int is_prime(int num) {
if (num < 2) {
return 0;
} else {
int i;
for (i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
}
int main() {
int nums[50], primes[50];
int i, j, count = 0;
// 输入50个正整数
printf("请输入50个正整数:\n");
for (i = 0; i < 50; i++) {
scanf("%d", &nums[i]);
}
// 判断是否为素数,并将素数存入primes数组
for (i = 0; i < 50; i++) {
if (is_prime(nums[i])) {
primes[count++] = nums[i];
}
}
// 冒泡排序,将素数按升序排列
for (i = 0; i < count - 1; i++) {
for (j = 0; j < count - i - 1; j++) {
if (primes[j] > primes[j + 1]) {
int temp = primes[j];
primes[j] = primes[j + 1];
primes[j + 1] = temp;
}
}
}
// 输出素数
printf("素数为:\n");
for (i = 0; i < count; i++) {
printf("%d ", primes[i]);
}
printf("\n");
return 0;
}
```
代码思路:
1. 首先定义两个数组,`nums`用于存储输入的50个正整数,`primes`用于存储素数。
2. 通过循环输入50个正整数,并依次判断是否为素数,若为素数则存入`primes`数组中。
3. 对`primes`数组进行冒泡排序,将素数按升序排列。
4. 最后输出素数。
阅读全文