一些基础的问题还是很有搞头的,单个循环实现九九乘法表。
第一次我的想法是用除9与模九来实现,这样做的结果是浪费了一半左右的计算。
1 #include <stdio.h> 2 int main(void) 3 { 4 int i = 0, x = 0, y = 0; 5 for(i = 0; i < 81; i++) 6 { 7 x = i / 9 + 1; 8 y = i % 9 + 1; 9 if (y <= x) 10 printf("%d*%d=%2d ", x, y, x * y); 11 else 12 if (y == x + 1) 13 printf(" "); 14 else 15 continue; 16 } 17 printf(" "); 18 return 0; 19 }
后来,跳出for循环的藩篱,使用两个变量,来递增与判断,实现了另一种简洁的方法。
1 #include <stdio.h> 2 int main(void) 3 { 4 int x = 1, y = 1; 5 while(x < 10) 6 if (y <= x) 7 printf("%d*%d=%2d ", x, y++, x * y); 8 else 9 { 10 x += y = 1; 11 printf(" "); 12 } 13 return 0; 14 }