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);
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语言小程序,为啥执行后显示段错误?求各位大神的说明或解决方法。