下列程序的功能是:要求依次对于整数M=100、1000和10000求出对应的n值,使其满足:Sn<M且Sn+1>=M(n+1为下标),这里Sn=A1+A2+…+An,并依次把n值存入数组单元b[0]、b[1]和b[2]中,请编制jsvalue()函数来实现此功能,最后调用函数writeDat()把数组b[]中的值输出到OUT98.DAT文件中。
程序很挫,今天晚上脑子很乱。随便编的。望各位能给小弟修改下。。。。。。
#include <stdio.h> int b[3]; void jsvalue() { int i=1,s1=1,s2=1,s0=s2+2*s1,sum=s1+s2,j=sum;//s1表示s(n-1) s2表示s(n-2) s0表示s(sn) while(!((j<100)&&(sum>=100))) { j=sum; sum = sum+s0; s2 = s1; s1 = s0; s0 = s2+2*s1;//s0表示Sn i++; } b[0]=i; while(!((j<1000)&&(sum>=1000))) { j=sum; sum = sum+s0; s2 = s1; s1 = s0; s0 = s2+2*s1; i++; } b[1]=i; while(!((j<10000)&&(sum>=10000))) { j=sum; sum = sum+s0; s2 = s1; s1 = s0; s0 = s2+2*s1; i++; } b[2]=i; } main() { jsvalue(); printf("M=100,n=%d\nM=1000,n=%d\nM=10000,n=%d\n",b[0],b[1],b[2]); writeDat(); } writeDat() { FILE *fp; fp=fopen("OUT98.DAT","w"); fprintf(fp,"%d\n%d\n%d\n",b[0],b[1],b[2]); fclose(fp); }
博主个人网站 http://henghui.web-126.com/