#include <iostream>
using namespace std;
int main()
{
int a[30];
int s=a[0];
int i;
for(i=0;i<30;i++)
{
cout<<"输入第"<<i+1<<"天的收入";
cin>>a[i];
}
for(i=0;i<30;i++)
{
if(0<a[i]&&a[i]<=200)
a[i]=a[i]*0.05;
else if(200<=a[i]&&a[i]<250)
a[i]=a[i]*0.1;
else if(250<=a[i])
a[i]=a[i]*0.15;
}
for(i=1;i<30;i++)
s=s+a[i];

cout<<s<<endl;
return 0;
}

解决方案 »

  1.   

    a[i]=a[i]*0.05;
    a[]是一个整型的数组,这样写会舍弃小数部分。把a[]改成double类型。
      

  2.   

    int a[30];
        int s=a[0];
    =========
    定义成float之类的浮点型
      

  3.   

        int s=a[0];//这里a[0]也是未知的,所以等于未初始化
        int i;
        for(i=0;i<30;i++)
        {
            cout<<"输入第"<<i+1<<"天的收入";
            cin>>a[i];
        }
      

  4.   

    将 int s=a[0];放到第一个for语句的后面就行了
      

  5.   

    怎么计算结果还是不对呢,#include <iostream>
    using namespace std;
    int main()
    {
    float a[30];
    int i;
    for(i=0;i<30;i++)
    {
    cout<<"输入第"<<i+1<<"天的收入";
    cin>>a[i];
    }
    float s=a[0];
    for(i=0;i<30;i++)
    {
    if(0<a[i]&&a[i]<=200)
    a[i]=a[i]*0.05;
    else if(200<=a[i]&&a[i]<250)
    a[i]=a[i]*0.1;
    else if(250<=a[i])
    a[i]=a[i]*0.15;
    }
    for(i=1;i<30;i++)
    s=s+a[i];

    cout<<s<<endl;
    return 0;
    }
      

  6.   

       float s=a[0];//这里的a[0]还没有经过下面的处理,当然不对了,你可以让s=0;后面从0开始累加
        for(i=0;i<30;i++)
        {
                if(0<a[i]&&a[i]<=200)
                a[i]=a[i]*0.05;
            else if(200<=a[i]&&a[i]<250)
                a[i]=a[i]*0.1;
            else if(250<=a[i])
                a[i]=a[i]*0.15;
        }
        for(i=1;i<30;i++)
            s=s+a[i];
        
        cout<<s<<endl;
        return 0;
      

  7.   

    修改为
    #include <iostream>
    using namespace std;
    int main()
    {
        double a[30]={0,}; //改为double 类型
        double s=0; //初始化为0
        int i;
        for(i=0;i<30;i++)
        {
            cout<<"输入第"<<i+1<<"天的收入";
            cin>>a[i];
        }
        for(i=0;i<30;i++)
        {
    if(0<a[i]&&a[i]<=200)
                a[i]=a[i]*0.05;
            else if(200<=a[i]&&a[i]<250)
                a[i]=a[i]*0.1;
            else if(250<=a[i])
                a[i]=a[i]*0.15;
        }
        for(i=0;i<30;i++) //i=0 开始 先前 double s=a[0]; //初始化为a[0],但取不了第一个值
            s=s+a[i];
        
        cout<<s<<endl;
        return 0;
    }
      

  8.   

    int s=a[0];放在第二个for之后,在将a[30]改成char型的。
      

  9.   

    在 float a[30];后面加上
    memset(a,0,30);
      

  10.   

    (⊙o⊙)… int -> float
      

  11.   


    #include <iostream>
    using namespace std;
    int main()
    {
        double a[30];
        double s=0;
        int i;
        for(i=0;i<30;i++)
        {
            cout<<"输入第"<<i+1<<"天的收入";
            cin>>a[i];
        }
        for(i=0;i<30;i++)
        {
            if(0<a[i]&&a[i]<=200)
                a[i]=a[i]*0.05;
            else if(200<=a[i]&&a[i]<250)
                a[i]=a[i]*0.1;
            else if(250<=a[i])
                a[i]=a[i]*0.15;
        }
        for(i=1;i<30;i++)
            s=s+a[i];
        
        cout<<s<<endl;
        return 0;
    }