斐波那契数列换行问题
就是大佬看下我这个我想让他有四个数的时候就换行,所以加了一个if语句,但是他换行并没有体现出来,为啥子啊,萌新求助 本帖最后由 永恒的蓝色梦想 于 2020-6-23 10:07 编辑#include<stdio.h>
int main() {
unsigned long long a = 1, b = 1, temp;
for(unsigned char i = 0; i < 20; ++i){
printf("%5llu %5llu ", a, b);
a += b;
b += a;
if (i & 1) {
putchar('\n');
}
}
return 0;
} if的条件不要加引号啊...这样就是字符串了,而只要不是空字符串都为真 qiuyouzhi 发表于 2020-6-22 16:06
if的条件不要加引号啊...这样就是字符串了,而只要不是空字符串都为真
是空字符串也为真。 永恒的蓝色梦想 发表于 2020-6-22 16:08
是空字符串也为真。
哦,是吗
看来我想成Python了。 本帖最后由 jackz007 于 2020-6-22 16:40 编辑
第 14 行
if("n % 4 == 7")
n % 4 可能得到的值是 0 , 1 , 2 , 3,永远不可能是 7!
再说了,你加上括号是几个意思?
#include <stdio.h>
int main(void)
{
int a = 1 , b = 1 , c , d ;
printf("%18d" , a) ;
for(c = 1 ; c < 40 ; c ++) {
d = a + b ;
a = b ;
b = d ;
if(! (c % 4)) printf("\n") ;
printf("%18d" , a) ;
}
if(! (c % 4)) printf("\n") ;
printf("%18d\n" , b) ;
}
编译运行实况:
D:\bin\00.Exercise\C>g++ -o fib fib.c
D:\bin\00.Exercise\C>fib
1 1 2 3
5 8 13 21
34 55 89 144
233 377 610 987
1597 2584 4181 6765
10946 17711 28657 46368
75025 121393 196418 317811
514229 832040 1346269 2178309
3524578 5702887 9227465 14930352
24157817 39088169 63245986 102334155
165580141
D:\bin\00.Exercise\C> 我来学习一下 本帖最后由 405794672 于 2020-6-22 20:38 编辑
你加的if中,n%4==7?n取余4怎么可能等于7。它最多等于3。
还有就是引号,引号中有内容,表示为真。那么每次都会执行\n命令 666
页:
[1]