#include<fstream.h>
#include<iomanip.h>
#include<iostream.h>
using namespace std;
ifstream f("atestat.in");
ofstream g("atestat.out");
int n,i,nr=0;
float v[100];
void a(int n)
{
for(i=1;i<=n;i++)
f>>v[i];
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
}
int main()
{
f>>n;
a(n);
cout<<endl;
float s=0;
for(i=1;i<=n;i++)
{
if(v[i]<0)
{
s=s+v[i];
nr++;
}
}
cout<<setw(2)<<s/nr<<endl;
}
我的 「atestat.in」 文件包含: -56.765 2.3 4.56 -1.2 -1.8 3爲什麼setw不工作?
該程序首先顯示所有的號碼的 「atestat.in」 文件的第二行,通過使用一個數組,然後它應該顯示該數組內所有負數的算術平均數,小數點後面的精度爲2個數字。出於某種原因,setw(2)什麼也沒有做,因爲我的cout<<setw(2)<<s/nr<<endl;
顯示「19.9217」,而不是「19.92」......有誰能告訴我爲什麼?我以某種方式使用它不正確?
你看過有關'std :: setw'的任何文檔嗎?另外,我可以告訴你的編譯器真的很舊,因爲它接受那些被刪除的頭文件。如果可以的話,從它們中移除'.h',然後升級編譯器。 – chris
是的,我一直在尋找一個原因,它可能無法正常工作,我已經看到它的使用等例子,但我使用的代碼似乎對我很好...所以我真的不知道 – Juggl3r
它是編譯器,我必須用於一個項目......我知道這是非常古老的,但這是他們讓我們使用的東西,所以就是這樣。另外,如果我把.h或不,我沒有什麼區別,我只是習慣於把它放在一邊。 – Juggl3r