长沙医院三甲有哪些:C语言问题

来源:百度文库 编辑:高考问答 时间:2024/04/28 19:42:29
求17之后连续的的五个质数
存在数组A[5]中
请帮个忙看看我的这个哪错了
怎么不运行呢

#include<stdio.h>
main()
{int i,k=0,j,f,a[5];
for(f=0,i=18;k<5;i++)
{for(j=2;j<i/2;j++)
{
if(i%j==0)
f=1;
}
if(f==0)
a[k++]=i;
}
for(i=0;i<5;i++)
printf("%d",a[i]);
}

这样就对了,你原来的是死循环:
#include<stdio.h>
main()
{
int i,k=0,j,f,a[5];
for(i=18;k<5;i++)
{
f=0;
for(j=2;j<i/2;j++)
{
if(i%j==0)
f=1;
}
if(f==0)
a[k++]=i;
}
for(i=0;i<5;i++)
printf("%d ",a[i]);
}

是正确的

什么就正确,瞎说话
改后的程序:
#include<stdio.h>
main()
{
int i,k=0,j,f,a[5];
for(f=0,i=18;k<5;i++)
{
for(j=2;j<i/2;j++)
{
if(i%j==0)
f=1;
}
if(f==0)
a[k++]=i;
f=0 ;/*标志位要清零,否则永位1*/
}

for(i=0;i<5;i++)
printf("%d\t",a[i]);/*加上\t加强了结果阅读性*/
getch();
}

同意二楼的 这样最简洁 一楼的也很好 倒数第3行
printf("%d\t",a[i]);/*加上\t加强了结果阅读性*/ 我比较喜欢printf("%-3d",a[i]); 个人习惯 嘿嘿

#include<stdio.h>
main()
{
int i,k=0,j,f,a[5];
for(i=18;k<5;i++)
{
f=0;
for(j=2;j<i/2;j++)
{
if(i%j==0)
f=1;
}
if(f==0)
a[k++]=i;
}
for(i=0;i<5;i++)
printf("%d ",a[i]);
}