做C语言习题
学东西不仅要学还要做练习,这个练习就不同于那种为了考试而做的,真正的去思考,消化所学的东西。
今天就做了一个打印乘法口诀表的C语言程序,看到这个题目,第一感觉是不难。两个for循环就可以了,但是实际做起来却并不是一帆风顺的。最开始写的程序是这样的:
#include<stdio.h> int main() { int a,b,sum; for(a=1;a<10;a++) for(b=1;b<10;b++) { sum=a*b; printf("%d x%d=%d ",a,b,sum); } printf("\n"); return 0; }
全在一行里显示了,如果加到for循环里面的话又全部在一列里显示了。需要加控制语句让程序换行。
#include<stdio.h> int main() { int a,b,sum; for(a=1;a<10;a++) for(b=1;b<10;b++) { sum=a*b; if(a<b) continue; printf("%dx%d=%d ",a,b,sum); if(a==b) printf("\n"); } printf("\n"); return 0; }
修改后是那么回事了,但是对齐还存在一点问题,有三个存在对齐问题,那就单独把这个控制一下。
#include<stdio.h> int main() { int a,b,sum; for(a=1;a<10;a++) for(b=1;b<10;b++) { sum=a*b; if(a<b) continue; printf("%dx%d=%d ",a,b,sum); if(a==b) printf("\n"); if(a==3&&b==2) printf(" "); else if(a==4&&b==2) printf(" "); else ; } printf("\n"); return 0; }
显示结果如下:
达到了想要的效果。
另外一种控制方法
#include<stdio.h> int main() { int a,b,sum; for(a=1;a<10;a++) for(b=1;b<10;b++) { sum=a*b; if(a<b) continue; printf("%2d x%2d=%2d ",a,b,sum); if(a==b) printf("\n"); } printf("\n"); return 0; }
结果如下:
通用性应该更强,这个是保证每个输出的字符都是一样宽。