C语言编程,求大神解释错误在哪?程序要求是:输入一个数,再输出比这个数大的第四个素数。附我的代码!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程,求大神解释错误在哪?程序要求是:输入一个数,再输出比这个数大的第四个素数。附我的代码!相关的知识,希望对你有一定的参考价值。

C语言编程,求大神解释错误在哪?程序要求是:输入一个数,再输出比这个数大的第四个素数。附我的代码!#include <stdio.h>
int main()

int a,b,c,num=0,i;
scanf("%d",&a);
for(b=a+1;b<=200;b++)

for(i=2;i<=b-1;i++)

c=b%i;
if(c!=0)

num++;
if(num==4)

break;
printf("%d\n",b);






return 0;

问题出在这里:

if(c!=0)

num++;

一次不能整除,并不能说明就是素数。算法错误。

#include <stdio.h>
void main()

int i,j,a,num=0;
scanf("%d",&a);
i=a+1;
while(num<4)

for(j=2;j<i;j++)
if(i%j==0) break;
if(j>=i) num++;
if(num<4) i++;

printf("%d",i);
参考技术A 这从根本上错了。追问

求大神给改改!

追答

#include <stdio.h>
int main()

int a,b,c,num=0,i;
scanf("%d",&a);
for(b=a+1;b<=a+200;b++)

for(i=2;i*i<=b;i++)
  if(b%i==0)break;
if(i*i>b)

num++;
if(num==4)
break;


printf("%d\\n",b);
return 0; 

追问

请问为啥用i*i呢?

不懂是啥意思

追答

这只是为了少循环一点。
for(i=2;i*ib)
改为:
for(i=2;ib/2)
效率就低了

追问

其实……我之前用的一直是……for(i=2;i=b-1,i++),是不是效率更低?

C语言编程 输入一段英语文本 判断单词数 字符数和空格。求大神...

#include "stdio.h"
main()
 
char s[81],c; 
int i,j=0,num=0,word=0; 
printf("请输入:\\n"); 
gets(s); 
for(i=0;(c=s[i])!='\\0';i++)//判断句子是否到未
if(c==' ')
 
word=0; //是空格就为0 
j++;

 else if(word==0)//不是空格就判断之前有没有空格    
     
 word=1;//复位用来判断空格是否存在的开关     
 num++;//如果之前有空格,单词数加1    
 
 printf("输入字符串共有%d个字符.\\n",i);
 printf("输入字符串共有%d个空格.\\n",j);
printf("输入字符串共有%d个单词.\\n",num);


参考技术A void main()

int d, k, z;
char a;
d = k = z = 0;
printf("请输入一行字符:");
while ((a = getchar()) != '\n')

if (a == ' ')

k++;
d++;

z++;


printf
("\n单词个数为:%d\n字符个数为:%d\n空格个数为:%d",
d, z, k);
追问

我才还要显示输入的文本文件 及统计段落 这怎么办?

参考技术B 这种小问题不是大神都能解的。。。。。同学,革命靠自觉。你可以编出来的。

以上是关于C语言编程,求大神解释错误在哪?程序要求是:输入一个数,再输出比这个数大的第四个素数。附我的代码!的主要内容,如果未能解决你的问题,请参考以下文章

kali linux的gcc编译完的C语言小程序,为啥执行后显示段错误?求各位大神的说明或解决方法。

我是C语言新手。求大神解释一下这一道题,书里没解析的额

C语言 显示strcpy出错 求大神解释 编译器是vs2013

一道C语言编程题,求大神们帮帮忙,谢谢了。。

NOIP 2011 复赛 普及组 c标称 求大神赏口饭吃

运行MATLAB算法程序时报错SVD 的输入不能包含 NaN 或 Inf,求大神指导