C语言输入20个整数,判断是否为素数并按3个一行的形式输出其中的素数

来源:百度知道 编辑:UC知道 时间:2024/06/08 00:04:20
代码如下:
#include <stdio.h>
#include <math.h>
main()
{
int a,i,flag=1,count=0;
while(a<=20)
{
printf("请输入20个整数:");
scanf("%d",&a);
getchar();
a++;
}
for(i=2;i<sqrt(a)&&(flag!=0);i++)
{if(a%i==0)
{
flag = 0;break;
}
if(flag == 1)
{printf("%d",i);
count++;
}
if(count%3==0)
{printf("\n");
i++;
}
}
getchar();
}

编译通过,但是结果不正确,麻烦各位大大帮忙看下,感激不尽!
2楼的可以,我是想不用数组只用循环做.还有你的运行了是以3个一列输出,不是3个一行

你根本都不知道自己在做什么
while(a<=20)
{
printf("请输入20个整数:");
scanf("%d",&a);
getchar();
a++;
} 这是在干啥? 连个数组都没有就往一个a里读入20个数?

你的错误太多了,下面这个是我写的,运行没问题。
#include <stdio.h>
#include <math.h>
main()
{
int a[20],i,j,k=0,temp,count;
printf("请输入20个整数:");
for(i=0;i<20;i++)
{
count=0;
scanf("%d",&temp);
if(temp<3)
continue;
for(j=2;j<temp;j++)
if(temp!=j)
if(temp%j==0)
count++;
if(count==0)
{a[k]=temp;k++;}
}

for(i=0;i<k;i++) //输出
{
printf("%d ",a[i]);
if(i%3==2)
printf("\n");
}
}