【发布时间】:2014-12-24 00:00:44
【问题描述】:
在表格中,n 值应该与带有空格的值 fibo 的行相吻合。
printf("n | ");
for (i = 1; i < = n ; i++)
{
printf("%d", i);
for (wert=0; wert < = (hochn(fibo(i)) - hochn(i)) ; wert++)
{
printf(" ");
}
}
其他函数 'hochn' 求 10 次方的值。
int hochn (int b)
{
int tmp;
for(tmp =0; b > 10 ; tmp++)
{
b = (b / 10);
}
return tmp;
}
此外,'fibo' 找到斐波那契数的值。
程序的实际运行如下:
n | 1 2 3 4 5 6 7 8 9 10 11 12 13 14
--------------------------------------------
f | 1 1 2 3 5 8 13 21 34 55 89 144 233 377
为什么n=11只有1个空格,n=12又回到2个空格?
【问题讨论】:
-
您好,欢迎来到 StackOverflow!你有没有试过先调试你的代码,看看能不能找到答案?
-
b > 10-->b >= 10。还有< =--><= -
使用
printf(" ");代替putchar(' ');是有效的,但有点笨拙。输出是这样的,因为hochn()产生了错误的答案。例如:0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 1, 12: 1, 13: 1, … 97: 1, 98: 1, 99: 1, 100: 1, 101: 1, 102: 1, 103: 1, 104: 1, 105: 1, 106: 1, 107: 1, 108: 1, 109: 1, 110: 2, 111: 2, …。这很容易通过运行一个从 0 到 120 或其他计数的简单测试来显示。修复它使其适用于 0 以及更大的数字是微妙的:for (tmp = 1; (b /= 10) > 0; tmp++) ;有效。了解如何测试琐碎的代码。