0 c++
我正在尝试建立一个数字介于1和插入数字之间的金字塔.例如,如果我将6插入整数,则piramid将如下所示:
12345654321
234565432
3456543
45654
565
6
Run Code Online (Sandbox Code Playgroud)
我尝试使用for循环,但我得到任何一行或++数字到6.这是代码:
#include<stdio.h>
#include <iostream>
#include <conio.h>
int main()
{
int i,j,d;
std::cin >> d;
for(i=1;i<=d;i++)
{
for(j=1;j<=i;j++)
printf("%d",j);
printf("\n");
}
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题,如图所示构建金字塔.
sbi*_*sbi 10
由于这是作业,我不会粘贴算法,但这里有一些提示:
这12345654321可以通过从1到6计数然后再回到1来打印.
这__3456543__意味着对于小于n的数字,您必须输出a _,其中n取决于您要打印的级别.
在循环中定义循环变量:for(int i=1;i<=d;i++) ...它们只在循环中有用,循环外的访问通常是一个错误,然后由编译器标记.
最后没有必要getch();.当您在调试器中时,可以在最后一行放置断点.如果你不是,你不想只是为了结束你的程序而按键.
如果您使用std::cout << j和std::cout << '\n'输出,则您也不需要printf().(一旦你想要格式化,许多人会告诉你printf格式字符串更容易.我不相信,但会接受它,如果不是你可以崩溃任何具有printf格式错误的格式字符串的应用程序,而它是很多更难以想出一种使用流来崩溃应用程序的方法.)