编写一个程序实现从键盘上任意输入50个正整数,找出其中的素数,并将其升序排列。(一维数组有关)

2024-11-08 07:55:36
推荐回答(3个)
回答(1):

#include 

const int MAXSIZE = 50;

int isPrime(int n) {
int i,flag = 1;
if(n < 2) return 0;
for(i = 2; i * i <= n && flag; ++i)
flag = n % i;
return flag;
}

void mysort(int a[], int n) {
int i,j,k,t;
for(i = 0; i < n - 1; ++i) {
k = i;
for(j = i + 1; j < n; ++j) {
if(a[k] > a[j]) k = j;
}
if(i != k) {
t = a[i];
a[i] = a[k];
a[k]  =t;
}
}
}

int main(int argc, char *argv[]) {
int i,n = 0,num;
int primes[MAXSIZE];
printf("输入%d个整数:\n",MAXSIZE);
for(i = 0; i < MAXSIZE; ++i) {
scanf("%d",&num);
if(isPrime(num)) primes[n++] = num;
}
mysort(primes,n);
for(i = 0; i < n; ++i)
printf("%d ",primes[i]);
printf("\n");
    return 0;  
}

回答(2):

#include "stdio.h"
#include "math.h"

bool ss(int d)
{
int i;
for(i=2;i<=sqrt(d);i++)
{
if(d%i==0)
break;
}
if(i>sqrt(d))
return true;
else
return false;
}
void sort(int d[],int n)
{
int i,j,t;
for(i=0;i {
for(j=n-1;j>i;j--)
{
if(d[j] {
t=d[j];d[j]=d[j-1];d[j-1]=t;
}
}
}
}
int main()
{
int i,j;
int d[50];
j=0;

for(i=0;i<50;i++)
{
scanf("%d",&d[j]);
if(ss(d[j]))
{
j+=1;
}
}
sort(d,j);
for(i=0;i printf("%d ",d[i]);
printf("\n");
}

回答(3):

回去裤子loll空