我想創建一個從1到10的列表。每次循環時,它都會添加一個到x
,我也希望它可以像這樣打印。如何根據x的值更改文本輸出
1
2
3
4
5
6
7
8
9
10
現在它打印這樣的:
1
2
3
4
5
6
7
8
9
10
我想創建一個從1到10的列表。每次循環時,它都會添加一個到x
,我也希望它可以像這樣打印。如何根據x的值更改文本輸出
1
2
3
4
5
6
7
8
9
10
現在它打印這樣的:
1
2
3
4
5
6
7
8
9
10
僞代碼:
for (i: 1..10)
for(j:1..i) //or for(j:1..(i-1)) if you want zero spaces on line 1
print space
print i
print newline
心連心
您可以將參數添加到您的函數表示縮進水平(由例如空格的字符串),每一次它被稱爲你增加一個「」。
在一個循環中,你可以做同樣的事情,通過只在您的增值每增加一個空間
嗯,你可以做一個「間隔「 - 循環中的字符串,並在每次運行時添加一個空格。然後輸出spacer-string +循環數。
std::string
有一個構造函數接受一個數字和字符,你可以用它來生成「X空格字符」:
#include <iostream>
#include <string>
int main()
{
for (int x = 0; x < 10; x++) {
std::cout << std::string(x, ' ') << (x+1) << '\n';
}
}
希望有所幫助。
1)給一個作業問題提供一個完整的代碼將無助於長期提問者... 2)你的代碼打印0..9而不是1..10 :) – 2011-03-22 20:12:11
這就是我想要的實際上是在現實世界中做的。 – 2011-03-22 20:20:09
@Armen:(1)如果他們通過實例學習,就像今天絕大多數程序員一樣;儘管我很欣賞你厭惡喂匙。 (2)修正了,謝謝。 – 2011-03-23 00:32:57
char buf[64];
for(int i = 1; i <= 10; i++)
{
sprintf(buf, "%%%dd\n", i + i/10 + 1);
printf(buf, i);
}
或
for(int i = 1; i <= 10; i++)
{
for(int j = 0; j < i - 1; j++)
std::cout << ' ';
std::cout << i << std::endl;
}
這不是功課。我沒有參加任何課程,我自己也是這樣做的。 jerks j/p – 2011-03-23 00:41:22