扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
代码文本:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、雅安服务器托管、营销软件、网站建设、南江网站维护、网站推广。
#include "stdio.h"
int primer(int n){//素数判断
int i;
if(n2 !(n1) || n2)
return 0;
for(i=3;i*i=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
int main(int argc,char *argv[]){
int id,t,i;
printf("Enter id(int id0)...\n");
if(scanf("%d",id)==1 id999999999 id10000000000){
printf("\nThe result is as following:\n");
if(t=i=0,(id += !((id%=100000)1))4){
printf("%6d",2);
i++,t++;
}
for(id += id==2 ? 1 : 0;i12 id99999;id+=2)
if(primer(id)){
printf(++t%4 ? "%6d" : "%6d\n",id);
i++;
}
if(i12)
printf("\nOnly these %d\n",i);
}
else
printf("Input error, exit...\n");
return 0;
}
如果按图片上填的(i+1)%4==0和printf("\n"),第一行只打印3个数,而并不是你说的a[3]还在第一行;以后才是每4个数一行,这不符合题意。应该填i%4==0和printf("\n")才对。
可以使用fgets函数和sscanf函数解决该问题。
示例代码如下:
FILE* pFile = fopen("file path","r");
if(pFile!=NULL){
char line[256];
int len=sizeof(line);
while(!feof(pFile)){
if(len0)memset(line,0,line);
fgets(line,sizeof(line),pFile);
len=strlen(line);
int a,b,c,d;
if(sscanf(line,"%d %d %d %d",a,b,c,d)==4){
printf("%d %d %d %d\n",a,b,c,d);
}
}
fclose(pFile);
}
方法一for循环
publicclassFeiBoMethod{
定义三个变量方法
publicstaticvoidmain(String[]args){
inta=1,b=1,c=0;
System.out.println("斐波那契数列前20项为:");
System.out.print(a+"\t"+b+"\t");
因为前面还有两个1、1所以i<=18
for(inti=1;i<=18;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+"\t");
if((i+2)%4==0)
System.out.println();
}
}
}
方法2使用数组的方式实现
publicclassFeiBoMethod{
定义数组方法
publicstaticvoidmain(String[]args){
intarr[]=newint[20];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for(inti=0;i<arr.length;i++){
if(i%4==0)
System.out.println();
System.out.print(arr[i]+"\t");
}
}
}
扩展资料:
递归实现
publicclassFeiBoMethod{
使用递归方法
privatestaticintgetSum(intnum){
if(num==1||num==2)
return1;
else
returngetSum(num-1)+getFibo(num-2);
}
publicstaticvoidmain(String[]args){
System.out.println("斐波那契数列的前20项为:");
for(inti=1;i<=20;i++){
System.out.print(getSum(i)+"\t");
if(i%4==0)
System.out.println();
}
}
}
你的12个数不是键盘输入的,不符合题意。
printf('\n');语法错误,应该是"\n"才对。
n没有初值,也没有判断增量,所以if(n%4==0)分支判断一般是为“假”,不会执行后面的语句printf。
if(leam==1)
{
printf("%d ",i);n++;
}
if(n==3){printf("\n");n=0;}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流