2 qq 33918988 qq_33918988 于 2016.02.03 10:19 提问

程序运行异常 c语言小问题 求助

想写一个求大数的斐波那契的程序,需要数组来实现进位,然后进位条件那(就是for循环的条件那里)有问题 ,改一下(改成c!=0或改成a[i-1][j]!=0||a[i-2][j]!=0,合起来就不对了)就可以正常运行,想问下现在这样写有什么问题吗?

#include
#include

const int A=10000;
int a[1000][10];

int main()
{
int n,i,j,c,cc;
memset(a,0,sizeof(a));
a[0][0]=a[1][0]=1;
for(i=2; i {
c=0;
for(j=0; c!=0||a[i-1][j]!=0||a[i-2][j]!=0 ; j++)//进位条件
{
a[i][j]=(a[i-1][j]+a[i-2][j]+c)%A;
c=(a[i-1][j]+a[i-2][j]+c)/A;
}
}
while(~scanf("%d",&n))
{
for(i=0; a[n-1][i]!=0; i++) {}
i--;
cc=i;
for(; i>=0; i--)
if(i==cc)
printf("%d",a[n-1][i]);
else
printf("%05d",a[n-1][i]);
printf("\n");
}
return 0;
}

1个回答

leilba
leilba   Rxr 2016.02.03 11:23

c!=0与a[i-1][j]!=0||a[i-2][j]!=0 不同时满足的话,你合在一起当然不会跳出循环啦,如果你要满足其一就可以结束for循环的话,那么可以判断条件:c!=0 && a[i-1][j]!=0&&a[i-2][j]!=0 ,表明的是当c==0、a[i-1][j]==0,a[i-2][j]==0同时满足的时候继续for循环,否则只要有一项不满足条件就跳出循环。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
程序运行出现的异常
程序运行出现的异常
C语言程序运行的步骤
C语言程序从编写到执行输出结果一般需要6个步骤:编辑(edit)、预处理(preprocess)、编译(compile)、连接(link)、装载(load)、和执行(execute)。编辑是通过编辑器书写C语言文本,该文本成为源文件,拓展名为.c(在c++系统中为.cpp)。预处理执行程序中的预处理指令(他们是为优化代码而设计的),每条预处理指令以符号#开始,结尾不带分号。例如#include #
求助java小问题
求助 java小问题 我在win2000系统装jdk1.50 出现问题提示如下: installshield wizard warning:Default charest GBK not supported using Iso-8859-1 instead
C语言查看程序运行的时间
clock()函数是获取当前”时钟打点数“  返回类型为clock_t 常量CLK_TCK 每毫秒的时钟打点数 使用的时候 要加载 实例:#include #include int main(){ clock_t start , stop; int i=0; double s=0; start=clock(); for(i;i<1000000000;i++){ } stop=c
求助,c语言初学者
谁能帮我解决一下这个问题,谢谢、3. A large chemical company paysits sales staff on a commission basis. They receive £200 per week plus 9% oftheir gross sales for that week. For example, someone who sells £5000 ofchem...
求助C语言!!!!!!!!!
我想表达的意思是:为什么下式错误!#include void main(){ printf("plese intput same thing/n");    int x,y,a1,b1,c1,a2,b2,c2; scanf("x=%d,y=%d",&x,&y); scanf("%d,%d,%d",&a1,&b1,&c1); printf("x=%d,b1=%d/n",x,y); printf("a
求助 C语言的单向链表
编写一个程序将一个头结点指针为pa的单链表A分解成两个单链表A和B,其头结点指针分别为pa和pb,使得A链表中含有原链表A中序号为奇数的元素,而链表B中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。我的程序:#include#includestruct node{ int data; struct node * next;};struct node * list(struct no
c语言求助
这段代码我改了一下午了,还是不知道哪里出错了,各路大虾帮俺看看,小生在这里谢过了:#include#include#include#include#define  N 20double M[N][N];int Men[N][11];int Women[N][11];void Input(){ FILE *fp; int i; fp=fopen("men.txt","r"); for(i=0;i {
求助C语言的英语单词
<br />有哪位大侠有C语言的单词发音和名词翻译发给我,我在这里先谢谢了!!!!!!<br />
c语言小白求助
输入一个三位数,计算其各位数字的和值,取该和被13除的余数,若余数为0,输出***,否则输出对应的月份。