我的C语言之路3
2016-03-17 13:21
309 查看
对于这道题:输出9*9乘法口诀表,我们应该如何解决呢?
如果只是输出简单的表,我们给出以下代码:
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 9; i++)
{
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d*%d=%2d ",i,j,i*j);
}
printf("\n");
}
system("pause");
return 0;
}
问题迎刃而解,但是需要注意几个问题:首先要清楚为什么定义了变量j。因为我们发现每一行输出的表达式个数与行数有关,第几行就输出几个表达式,于是引入了变量j与行数做比较,运用循环结构输出表达式。其次这里表达式的形式为“%d*%d=%2d ”,“%2d”作用是加大表达式之间的空隙,使乘法表看起来更加美观。如果条件允许,我们也可以用“%d”或者“%3d”,“%4d”等等来书写。最后对于换行我们需要注意什么呢?如果直接写成“%d*%d=%2d\n”会发生什么呢?如下图:
为什么会出现这种情况呢?因为如果写成“%d*%d=%2d\n”,则在输出每一个表达式之后都会执行换行的步骤。若以我们一定要单独写出“printf“\n””这一步骤,而且要写在for(j = 1; j <= i; j++)这一循环程序执行结束之后,表示:输出这一行所有的表达式之后换行。
那么,如果我们要输出更加好看的9*9乘法口诀表,如下图,该怎么做呢?
我们可以发现在这个乘法口诀表中,多出了两个表边,分别输出了1到9。
要使程序输出这样的结果,再原程序的基础上肯定加上了两句话:printf(“%d”,i);和printf(“%d”,j);
那么此时i表示的是行,j表示的是列,则两个程序中的j的意思发生了变化。那么在这里j也要执行循环程序输出1到9,所以在原程序的基础上我们也要加上关于j的循环语句,即:
for(j = 1; j <= 9;j ++),之后i再与j进行比较,执行循环语句输出表达式。我们给出完整的代码:
#include <stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 9; i++)
printf("\t%d", i);
printf("\n");
for (j = 1; j <= 9; j++)
{
printf("%d", j);
for (i = 1; i <= j; i++)
printf("\t%d*%d=%2d", i, j, i*j);
printf("\n");
}
system("pause");
return 0;
}
注意几个换行语句的输入情况。
这样9*9乘法口诀表的输出就完成了,其中的不足还希望读到的人能联系我告知。
如果只是输出简单的表,我们给出以下代码:
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 9; i++)
{
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d*%d=%2d ",i,j,i*j);
}
printf("\n");
}
system("pause");
return 0;
}
问题迎刃而解,但是需要注意几个问题:首先要清楚为什么定义了变量j。因为我们发现每一行输出的表达式个数与行数有关,第几行就输出几个表达式,于是引入了变量j与行数做比较,运用循环结构输出表达式。其次这里表达式的形式为“%d*%d=%2d ”,“%2d”作用是加大表达式之间的空隙,使乘法表看起来更加美观。如果条件允许,我们也可以用“%d”或者“%3d”,“%4d”等等来书写。最后对于换行我们需要注意什么呢?如果直接写成“%d*%d=%2d\n”会发生什么呢?如下图:
为什么会出现这种情况呢?因为如果写成“%d*%d=%2d\n”,则在输出每一个表达式之后都会执行换行的步骤。若以我们一定要单独写出“printf“\n””这一步骤,而且要写在for(j = 1; j <= i; j++)这一循环程序执行结束之后,表示:输出这一行所有的表达式之后换行。
那么,如果我们要输出更加好看的9*9乘法口诀表,如下图,该怎么做呢?
我们可以发现在这个乘法口诀表中,多出了两个表边,分别输出了1到9。
要使程序输出这样的结果,再原程序的基础上肯定加上了两句话:printf(“%d”,i);和printf(“%d”,j);
那么此时i表示的是行,j表示的是列,则两个程序中的j的意思发生了变化。那么在这里j也要执行循环程序输出1到9,所以在原程序的基础上我们也要加上关于j的循环语句,即:
for(j = 1; j <= 9;j ++),之后i再与j进行比较,执行循环语句输出表达式。我们给出完整的代码:
#include <stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 9; i++)
printf("\t%d", i);
printf("\n");
for (j = 1; j <= 9; j++)
{
printf("%d", j);
for (i = 1; i <= j; i++)
printf("\t%d*%d=%2d", i, j, i*j);
printf("\n");
}
system("pause");
return 0;
}
注意几个换行语句的输入情况。
这样9*9乘法口诀表的输出就完成了,其中的不足还希望读到的人能联系我告知。
相关文章推荐
- VC++6.0 空格错误之 unknown character '0xa1'
- C++中一个关于复制构造函数和指针的问题
- C++静态库与动态库
- C++拷贝构造函数(深拷贝,浅拷贝)
- C++,C#,JAVA之间webservice互操作问题探讨
- C++某些函数的介绍
- C语言实现哈夫曼树
- nf笔记
- 虚继承原理详解及实例分析
- C语言之头文件包含问题
- 多继承原理详解及实例分析
- C/C++常用头文件及函数汇总
- C++你不知道的那些事儿—C++语言的15个晦涩特性
- 利用原型模式实现简历复印 C++
- 标准C++复数运算类详解及使用例程
- leetcode:235. Lowest Common Ancestor of a Binary Search Tree
- C++中一个常用的句型(两个for(;;)语句连用的重要性)
- 分糖果 蓝桥杯
- C++Coding那些事 之do...while(0)的妙用
- C++sort()函数的用法 及学习