C++ 小数点不显示

C++ 小数点不显示,c++,C++,我打算让用户只输入正整数值,但我意识到输出是错误的。例如,我输入的最大值为100.6,显示的最大值仅为100。我相信问题来自atoi。有人能看看我的代码,告诉我出了什么问题吗 #include<iostream> #include<string> using namespace std; int main() { const int SIZE = 12; string month[SIZE] = { "Jan",

我打算让用户只输入正整数值,但我意识到输出是错误的。例如,我输入的最大值为100.6,显示的最大值仅为100。我相信问题来自atoi。有人能看看我的代码,告诉我出了什么问题吗

    #include<iostream>
    #include<string>
    using namespace std;

    int main()
    {
    const int SIZE = 12;
    string month[SIZE] = { "Jan", "Feb", "Mar","April","May","June","July","August","Sept","October","Nov","Dec"};
    string highestMonth, lowestMonth;
    char temp[SIZE]; 
    double rainFall[SIZE], total = 0.0, average, highest, lowest;
    bool flag;
    int i = 0;

    do{
        flag = false;
        cout << "Enter rainfall for " << month[i] << " : ";
        cin >> temp;
        for (int j = 0; j < strlen(temp); j++)
        {

            if (!isdigit(temp[j]))
            {
                if (temp[j] == '.')
                    continue;
                cout << "Enter positive integer value only" << endl;
                flag = true;
                break;
            }

        }



        if (flag == false)
        {
            rainFall[i] = atoi(temp);
            total += rainFall[i];
            i++;
        }
    } while (i < SIZE);

    average = total / 12.0;

    lowest = rainFall[0];
    lowestMonth = rainFall[0];

    for (int i = 1; i < SIZE; i++)
    {
        if (rainFall[i] < lowest)
            lowest = rainFall[i];
        lowestMonth = rainFall[i];
    }

    highest = rainFall[0];
    highestMonth = rainFall[0];
    for (int i = 1; i < SIZE; i++)
    {
        if (rainFall[i]>highest)
            highest = rainFall[i];
        highestMonth = rainFall[i];
    }

    cout << "Total rainfall:" << total << endl;
    cout << "Average:" << average << endl;
    cout << "Highest:" << highest << " in " << highestMonth << endl;
    cout << "Lowest:" << lowest << " in " << lowestMonth << endl;

    system("pause");
    return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
常数int SIZE=12;
字符串月份[大小]={“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”};
字符串最高月份,最低月份;
字符温度[大小];
双降雨量[大小],总量=0.0,平均值,最高值,最低值;
布尔旗;
int i=0;
做{
flag=false;
coutatoi将数字的字符串表示形式转换为整数,因此将“100.6”转换为100

您可以使用atof

atoi将数字的字符串表示形式转换为整数,以便将“100.6”转换为100

您可以使用atof

atoi将数字的字符串表示形式转换为整数,以便将“100.6”转换为100

您可以使用atof

atoi将数字的字符串表示形式转换为整数,以便将“100.6”转换为100


如果输入有小数点,并且没有代码处理小数点输入,则可以使用atof

标志设置为true

    if (flag == false)
    {
        rainFall[i] = atoi(temp);
        total += rainFall[i];
        i++;
    }

如果
标志
为false,此代码将处理输入,但如果
标志
为true,则没有处理小数的类似代码。

如果输入有小数点,并且没有处理小数输入的代码,则将
标志
设置为true

    if (flag == false)
    {
        rainFall[i] = atoi(temp);
        total += rainFall[i];
        i++;
    }

如果
标志
为false,此代码将处理输入,但如果
标志
为true,则没有处理小数的类似代码。

如果输入有小数点,并且没有处理小数输入的代码,则将
标志
设置为true

    if (flag == false)
    {
        rainFall[i] = atoi(temp);
        total += rainFall[i];
        i++;
    }

如果
标志
为false,此代码将处理输入,但如果
标志
为true,则没有处理小数的类似代码。

如果输入有小数点,并且没有处理小数输入的代码,则将
标志
设置为true

    if (flag == false)
    {
        rainFall[i] = atoi(temp);
        total += rainFall[i];
        i++;
    }

如果
标志
为假,此代码将处理输入,但如果
标志
为真,则没有处理小数的类似代码。

请制作一个最小代码示例,仅显示所描述问题所需的内容。请制作一个最小代码示例,仅显示所描述问题所需的内容。示例请制作一个最小代码示例,仅显示您所描述的问题所需的内容。请制作一个最小代码示例,仅显示您所描述的问题所需的内容