题目 1040: [编程入门]实数的打印

一个实数,float范围

输出格式

输出3行,第一行打印一遍输入的数,第二行打印两遍,第三行打印三遍。 第二行和第三行,用空格分隔同一行的数字。 实数用"6.2f"格式输出。

样例输入

复制

0.618

样例输出

复制

  0.62
  0.62   0.62
  0.62   0.62   0.6

观察输出发现·第1行输出1个,第2行输出2个,第3行输出3个:

3X3双层for循环,局部变量i的范围都是1~3:外层表示第几行,内层表示输出了几个,

其中外层的语句是令局部变量cnt=0..有点像求质数把isPrime的布尔值初始。

..>不过这不是最好的方法,

方法1:

//实数的打印
#include<iostream>
using namespace std;

int main() {
	float num;
	cin >> num;
	int cnt = 1;  //计数仔上线 初始为1表示:第1行输出1个      第2行输出2个
	for (int j = 1; j <= 3; j++) {   //一共输出3次
		cnt = 0;
		for (int i = 1; i <= 3; i++) {  //每一行输出对应的个数
			if (cnt == j && cnt != 3) {  //第三次不endl跳行
				cout << endl;
				break;
			}
			printf("%6.2f ", num);       //专业四舍五入-留两位
			++cnt;   //自增1 表示本行输出1个num
		}
	}

	return 0;
}

方法2:

有的大佬会觉得计数君cnt太麻烦了,直接用i==j判断--输出的次数就是行数不行吗?可以的

至于break和continue的区别:

break`语句用于完全终止内循环的执行并继续外层循环

`continue`语句用于跳过本次内循环的剩余代码,直接进行下一次内循环的迭代。

而我们判断满足后不用再在当前行输出,所以完全跳出内循环进行下次外循环

//实数的打印
#include<iostream>
#include<iomanip>
using namespace std;

int main() {
	float num;
	cin >> num;

	for (int j = 1; j <= 3; j++) {   //一共输出3次
		for (int i = 1; i <= j; i++) {  //每一行输出对应的个数
			printf("%6.2f ", num);
			if (i == j) {
					cout << endl;
					break;
			}
		}
	}

	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_63999224/article/details/132364806