帮忙看下下面的C程序怎么不对?

100之内的素数
#include"stdio.h"
#include"math.h"
main()
{ int i,n,flag=1;
for(n=2;n<=100;n++)
{ for(i=2;i<=sqrt(n);i++)
if(n%i==0)
{ flag=0;break;}
if(flag)printf("%d\n",n);}
}
运行后,就显示2和3
我菜啊,改了大半天了,还不对。高手救命啊。。。我把所有分都奉献啦
运行后,就显示2和3
我菜啊,改了大半天了,还不对。高手救命啊。。。我把所有分都奉献啦

ps:大家的都对。谢谢!那要再求和,需要再加什么?我加了sum+=n以后,算出来的要么是102,要么是5000多。到底该怎么弄呢?

看看我的会对你有帮助的
#include <math.h>
main()
{ int i,n,flag=1;
for(n=2;n<=100;n++)
{ flag=1;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
{ flag=0;break;}
if(flag)printf("%d\n",n);}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-04-11
#include"stdio.h"
#include"math.h"
main()
{ int i,n,flag=1;
for(n=2;n<=100;n++)
{ flag=1;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
{ flag=0;break;}
if(flag)printf("%d\n",n);}
}
第2个回答  2006-04-11
flag在中间没有被初始化,
应该在第二个FOR循环时置为1

for(i=2,flag=1;i<=sqrt(n);i++)

帮忙看下以下的C语言程序,哪里有问题了,为什么Linux上编译执行会出现段...
可能是strcpy(c,a);时越界,a中直到遇到'\\0'才会拷贝结束,你试试把a最后一个设为'\\0'

我编写的C程序怎么错了啊。在FLOAT那一行!
2. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。[C语言指针]指针就是C语言的一大特色,可以说C语言优于其它高级语言的一个重要原因就是因为它有指针操作可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不...

帮忙看这个才C程序哪里错了??先输入信息 求某一天之前的天数
你好!程序改动有些大,请谅解,不过能实现你所要求的功能,下面是代码……include<stdio.h>\/\/统计某日之前的天数 struct Month { char Mname[10];char Sname[3];int Days;int Numbers;};void MakeMonth(struct Month *);\/\/输入数据 void SumDay(struct Month nMonth[]);\/\/统计并返回总共天数 ...

C语言,请帮忙看下这个代码哪不对,输出的结果中第一个数字总是不参与排序...
这是你的代码有点问题。其中的循环条件写错了。应该把 while((j>0)&&(x=0)&&(x

加密解密的C程序有错误,帮忙看看
file[4096],输入的文件超过这个就会数组越界!2、fp = fopen(filename, "w"); fprintf(fp, "%d", file[i]);前面打开了还没关闭此处会发生打开失败,另外打开后只输出一个file[i] ?还有file[i]定义是char,此处用%d ?下面没细看,因排版原因。建议先参考下别人的程序,自己再慢慢试着写...

C程序运行出现错误,怎么解决?
当C程序运行出现错误时,可以通过以下步骤来解决问题:查看错误提示:首先,查看程序运行时的错误提示信息。编译器或运行时环境通常会提供相关的错误信息,例如错误的行号、错误类型等。仔细阅读错误信息,可以帮助您定位问题所在。检查代码逻辑:检查程序的代码逻辑,寻找可能的错误。注意检查语法错误、逻辑错误...

请帮忙看下c语言程序错在哪里 要求显示所有小于或等于该数的素数
1、if (sum(i))的情况下i也得++,不然就陷入死循环 2、if (n%div == 0)如果满足就能证明不是素数,此处就要跳出循环,否则结果肯定不对。3、printf("%d", i);输出最好加个逗号,免得到时候看到的结果是连着的,区分不了。修正了下:include<stdio.h>int is_prim(int n);int main(void)...

linux下C进程之间管道通信的问题,懂的进来看下这段程序怎么运行...
所以要用到进程间通信的方式来让读段通知写端我已经读完了,你可以写下一个了。 有很多种方法来实现这个进程同步,比如用信号量等。不过既然你是一个管道的代码,我就用了管道的方式来实现,让你参考。下面的代码创建了两个管道,pipe_a2b 这个就是你原来的那个管道, pipe_b2a 这个是新加的,用来...

C语言!帮忙看下我写的这个程序错在哪里了,谢谢!用的是二次插值法.
其他的地方没有错,area函数定义的变量p的地方有错:include "stdio.h"include "math.h"include "conio.h"void main(){ float *area(float a1,float p,float a[3]);float f(float x);float ar,fr;float a2,a3;float f1,f2,f3;float a1=10,p=0.01,e=0.00001;float pa[3];area(a1...

C程序为什么错误,求大神看看这样定义int a[5], i, j, min = 0 , max...
int a[5]只是定义了一下,开辟了一个有5个int型元素的空间,并没有初始化 它是不能给别的变量初始化的哦。应该这样子:void main(){ int a[5], i, j, min , max , sum = 0;float ave;printf("输入5个数\\n");for (i = 0; i < 5; i++)scanf("%d", &a[i]);min = ...

相似回答
大家正在搜