当前位置: 代码迷 >> C语言 >> 求助,急!!!
  详细解决方案

求助,急!!!

热度:371   发布时间:2008-03-12 22:28:32.0
求助,急!!!
小小一段程序,错误在那里?#include<stdio.h>
     main()
   {
    int i=0,j=1,m,n;
    scanf("%d",&m);
    for(n=1;n<=100;n++)
    {i=i+1;
     if(i>=10) i=i-10;
     j=i+j;
     if(j>10)  j=j-10;
     if(j==m){printf("step=%d\n",n);break;}
    }
    if(n>100) printf("n>100!");
   }
搜索更多相关的解决方案: include  

----------------解决方案--------------------------------------------------------
if(n>100) printf("n>100!");
n 为循环控制变量,事先又没有声明为多少怎么能大于100啊?
----------------解决方案--------------------------------------------------------
抱歉,把你的意图先说下。不知道你这个代码到底想干什么。
根据你的代码,i在一下数字之间循环:毫无疑问,这个从代码也可以看出,10个数字为一个循环,
1  2  3  4  5  6  7  8  9  0
1  2  3  4  5  6  7  8  9  0
1  2  3  4  5  6  7  8  9  0
1  2  3  4  5  6  7  8  9  0
1  2  3  4  5  6  7  8  9  0
1  2  3  4  5  6  7  8  9  0
1  2  3  4  5  6  7  8  9  0
1  2  3  4  5  6  7  8  9  0
1  2  3  4  5  6  7  8  9  0
1  2  3  4  5  6  7  8  9  0
根据你的代码,j是在以下数字之间循环:这个只能从结果看出,20个数字为一个循环,
2  4  7  1  6  2  9  7  6  6
7  9  2  6  1  7  4  2  1  1
2  4  7  1  6  2  9  7  6  6
7  9  2  6  1  7  4  2  1  1
2  4  7  1  6  2  9  7  6  6
7  9  2  6  1  7  4  2  1  1
2  4  7  1  6  2  9  7  6  6
7  9  2  6  1  7  4  2  1  1
2  4  7  1  6  2  9  7  6  6
7  9  2  6  1  7  4  2  1  1
如果你输入的m的值不在以上数字中(即m不是1,2,4,6,7,9),那么将肯定打印"n>100!"(因为如果没有中途break,循环结束肯定满足这个条件)。
到现在依然不知道你的代码到底想干什么。。。。。。。

[[it] 本帖最后由 hoodlum1980 于 2008-3-13 02:56 编辑 [/it]]
----------------解决方案--------------------------------------------------------
看不懂代码
----------------解决方案--------------------------------------------------------
同意上边楼主说法!
上边楼主分析的对,你这个程序要表达什么?意图要说明!要不做重复无用功!
----------------解决方案--------------------------------------------------------
  相关解决方案