C++题目,看修改程序得到正确答案

来源:百度知道 编辑:UC知道 时间:2024/06/15 05:36:23
#include <iostream>
#iclude<iomanip>
using namesapce std;
int main()
{
int i;
int f[20]={1.1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{if(i%5==0)cout<<endl;
cout<<setw(8)<<f[i];
}
cout<<endl;
return 0;
}

输出结果为:
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
987 1597 2584 4181 6765

怎样改使结果 为:
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
987 1597 2584 4181 6765
目的是让第一排的数向左对齐,剩下4排的数向右对齐,我写上去的时候每排数是对齐的,可是现在是歪的,大家不要看错题,1楼和2楼的都是错的,1楼的好多错误哦。

#iclude<iomanip>
using namesapce std;
int main()
{
int i,key=0;//key用于判断输出方式
int f[20]={1.1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0)
{
cout<<endl;
key=1;
}
if(key==0)
{
cout<<setw(8)<<f[i];
}
else
{
cout<<f[i];
key==0;
}

}
cout<<endl;
return 0;
}

这样应该就可以了

cout<<setw(8)<<f[i];
改为
cout<<setiosflags(ios::left)<<setw(8)<<f[i];

setiosflags(ios::left)是让文本左对齐,ios::right是右对齐。