求200内的素数 ,只写了前三步后面的第四步求

步骤
1.求出200以内的全部素数;
2.把全部素数存入数组中;
3.由大到小排列该数组并输出;
4.输出50到150的素数,要求第几行输出几个素数。
5.要求自己定义排序的函数。
int IsPrime(n)
int n;
{
int i;
if (n==2)
return(1);
if (n%2==0)
return(0);
for(i=3;i<=n/2+1;i+=2)
if (n%i==0)
return(0);
return(1);
}
main()
{
int c[100];
int n = 0;
int i;
for (i=200;i>=1;i--)
if (IsPrime(i))
c[n++] = i;
for (i=0;i<n;i++)
printf("%d\t\n",c[i]);
}

#include<stdio.h>
int main()
{
int i;
int j;
for(i = 0;i <= 199;i+=2)
{
for(j = 2;j < (i/2);j++)
{
if(i % j == 0)
break; // 当i可以整除j的时候,跳出循环。
}
if(j == i/2)
printf("%d\n",i); //输出i
}
return 0;
}

int count = 1;
int temp = count;
for (int i = 50; i <= 150; i++)
{
  if (isprime(i))
  {
    if (temp == 0)
    {printf("\n");count++;temp = count;}
    temp--;
    printf("%d ", i);
  }
}

img

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int IsPrime(n)
{

    int i;
    if (n==2)
        return(1);
    if (n%2==0)
        return(0);
    for(i=3; i<=n/2+1; i+=2)
        if (n%i==0)
            return(0);
    return(1);
}
void sort(int a[],int n)
{
    int i,j;
    int t;
    for (i = 0; i < n-1; i++)
    {
        for (j = n-1-i; j <=0; j++)
        {
            if (a[j] > a[j+1])
            {
                t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
    }
}
int main()
{
    int c[100];
    int n = 0;
    int i,j=0;
    int hang=0,count=0;
    for (i=200; i>=1; i--)
        if (IsPrime(i))
            c[n++] = i;
//    printf("n:%d  ",n);
    sort(c,n);
    for (i=0; i<n; i++)
    {
        printf("%d  ",c[i]);
    }
    printf("\n");printf("\n");
    for (i=0; i<n; i++)
    {
        if(c[i]>=50&&c[i]<=150)
        {
            printf("%d  ",c[i]);
            count++;
        }
        if(count==hang)
        {
            printf("\n");
            count=0;
            hang++;
        }
    }
    return 0;
}
 

我稍微给你改了下,加了排序函数,这样第五条也满足了


int IsPrime(n)
{
    int i;
    if (n==2)
    return(1);
    if (n%2==0)
    return(0);
    for(i=3;i<=n/2+1;i+=2)
    if (n%i==0)
    return(0);
    return(1);
}

void sort(int*c, int n){
    int i,j,t;
    for (i = 0; i < n; i++)
    {
        for (j = i + 1; j < n; j++)
        {
           if (c[i] < c[j])
           {
               t = c[i];
               c[i] = c[j];
               c[j] = t;
           }
        }
    }
}

int main()
{
int c[100];
int n = 0;
int i;
for (i=2;i<=200;i++)
    if (IsPrime(i))
        c[n++] = i;

sort(c, n);

for (i=0;i<n;i++)
    printf("%d\t\n",c[i]);

printf("\n");

int j = 0, k = 1;
for (int i = 0; i < n; i++)
{
    if (c[i] >= 50 && c[i] <= 150)
    {
        printf("%d ",c[i]);
        j ++;
        if (j >= k)
        {
            j = 0;
            k ++;
            printf("\n");
        }
    }
}

printf("\n");

return 0;
}

运行结果:

img