2016.03.23    分类:程序设计    评论  标签: 编程    浏览:1493

做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;
}

 

QQ截图20160323233121.png


全在一行里显示了,如果加到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;
}


QQ截图20160323233610.png

修改后是那么回事了,但是对齐还存在一点问题,有三个存在对齐问题,那就单独把这个控制一下。

#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;
}

 

显示结果如下:

QQ截图20160323234401.png

达到了想要的效果。

另外一种控制方法

#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;

}

结果如下:

QQ截图20160323232348.png

通用性应该更强,这个是保证每个输出的字符都是一样宽。

想说点什么?在下方留下你的评论