中枢神经障碍会怎么样:检查这段C程序有什么问题

来源:百度文库 编辑:高校问答 时间:2024/04/28 22:05:28
#include <stdio.h>
main()
{
int a[100];
int i,j;
for (i=1;i<=100;i++)
for (j=1;j<i;j++)
if(j!=i)
{
if(i%j==0)
a[i]=i;
}
printf("The Prime Number Between 1 and 100 is: /n");
for(i=1;1<=100;i++)
printf("%d",a[i]);
}

***************************
这是我写的筛选出100以内的素数的程序
改成这样的了,仍然不行。可否给个完整的程序。成功之后再加送10分!

#include <stdio.h>
main()
{
int a[101];
int i,j,b;
printf("The Prime Numbers Between 1 and 100 are: /n");
for (i=1;i<=100;i++)
for (j=2;j<i;j++)
if(i%j==0) printf("%d",a[i]);
}

#include<stdio.h>
void main()
{
int i,j,n,a[101];
for(i=1;i<=100;i++)a[i]=i;
for(i=2;i<sqrt(100);i++)
for(j=i+1;j<=100;j++)
{
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
printf("\n");
for(i=2,n=0;i<=100;i++)
{
if(a[i]!=0)
{
printf("%5d",a[i]);
n++;
}
if(n==10)
{
printf("\n");
n=0;
}
}
以上是谭浩强老先生的

************
你的那两个绝对不对
第一个:你将输出100个数,显然不对
后来的那个:24这样的合数它将输出3次并且不会输出 任何 一个 素数
*********
帮你改一下
第一个:
#include <stdio.h>
void main()
{
int a[100]={0};
int i,j,flag=1;
for (i=1;i<=100;i++)
for (j=1;j<i;j++)
if(flag)
{
a[i]=i;
if(i%j==0)
{
flag=0;
a[i]=0;
}
}
printf("The Prime Number Between 1 and 100 is: /n");
for(i=1;1<=100&&a[i]!=0;i++)
printf("%d",a[i]);
}
第二个待续………

前面那个是我 觉得回答的好的话
记得把分加到上面那个哦^-^
前面那个第一个修正有问题
现已修改如下:

第一个:
#include <stdio.h>
void main()
{
int a[101]={0};
int i,j,flag=1;
for (i=1;i<=100;i++)
for (j=1,flag=1 ;j<i&&flag;j++)
{
a[i]=i;
if(i%j==0)
{
flag=0;
a[i]=0;
}
}
printf("The Prime Number Between 1 and 100 is: /n");
for(i=1;i<=100;i++)

if(a[i]!=0)
printf("%d\t",a[i]);
}
printf("\n");
}

第二个你自己动手吧,差不多
不过这么算效率不高
1.i取遍每一个值
2.j也取遍每小于i的一个值
请仔细分析谭浩老先生的算法

1,第二个循环中变量j应该从2开始,到sqrt(i)+1结束即可
2,if(j!=i) 这句没用
3,当i=100时a[i]不存在,a的标号从0开始到99结束
4,最后一个打印把a中100个数都打印出来了,而且有些是没有赋值的
5,f(i%j==0) a[i]=i; 这句保存的是不是素数的
6,老兄,可能还有其他错误,要改的很多,建议先想后编

你去验证一下就知道了啊

正确.