【发布时间】:2012-02-25 11:47:32
【问题描述】:
我需要编写一个程序,从文件中获取 2 个整数。然后它必须从这两个数字中制作一个金字塔。它必须看起来像这样:
我已经编写了代码,它可以按照我的意愿工作,我敢打赌我想不出如何让它看起来像金字塔。
这就是我这样做时的样子:
这是我的代码:
#include <fstream>
using namespace std;
int main(){
ifstream inFile("Duomenys.txt");
ofstream outFile("Rezultatai.txt");
int N,M,smth,suma=0;
inFile >> N >> M;
smth=N;
while(N<=M){
for(int i=smth;i<=N;i++){
outFile<<i<<" ";
suma+=i;
if(i==N){
for(int i=N-1;i>=smth;i--){
outFile<<i<<" ";
suma+=i;
}
}
}
outFile<<endl;
N++;
}
outFile<<endl<<"Skaiciu suma: "<<suma;
inFile.close();
outFile.close();
return 0;
}
所以我的问题是,如何使我的答案像示例中那样呈金字塔形?
【问题讨论】:
-
预先计算最后一行的宽度,然后使用该信息使每一行居中。
-
我也想知道怎么做 <.>
-
您可能还想看看
width参数。 -
嗯...想想。你知道最后一行有多少个数字吗?你知道每个数字占用多少空间吗?
-
假设一个等宽字体(对于所有终端的 99% 来说都足够真实),您可以将每行的字符数计算为“宽度”。