【问题标题】:C++ Beginner Array ProgramC++ 初学者数组程序
【发布时间】:2017-06-28 01:24:09
【问题描述】:

第 1 部分 编写一个程序:
1.调用函数在数组中输入连续几天的温度。温度应为整数。
2.用户将输入温度的数量。温度不会超过 10 个。
3.调用函数对数组进行升序排序。你可以使用任何你想要的排序算法,只要你能解释它。
4.调用将返回温度平均值的函数。平均值应显示到小数点后两位。

以下是我的源代码,我是否走在正确的轨道上?
这个问题我应该使用什么算法?
对于数字 4,我可以使用平均函数对吗?
还有什么 youtube 频道或其他学习资源可以推荐给初学者学习 C++?我试过读这些书,但我觉得这对我没有帮助。
我是初学者,我尝试过在线搜索,但没有找到任何解决方案。

#include <iostream>
using namespace std;
int main()
{
    int numtemp;
    cout<<"Please input the number of temperatures to be read"<<endl;
    cin>>numtemp;
    int temp[numtemp];
    for (int i=0;i<numtemp;i++)
    {
        cout<<"Please input temperatures for day "<<(i+1)<<endl;
        cin>>temp[i];
    }
    return 0;
}

【问题讨论】:

  • 我不认为 VLA 在 C++ 中是标准的,你应该使用向量。
  • 这看起来不错,如果您稍微搜索一下,您可以在 Q3 中使用许多排序算法。对于 Q4,我不知道有任何 C++ 函数会取数组的平均值,但编写一个非常简单。

标签: c++ arrays algorithm


【解决方案1】:

让我们看看我能不能帮上忙...当它说“调用一个函数”时,这很可能意味着如果不存在完美的解决方案,就调用一个你编写的函数。下面的代码将向您展示我对#4 的实现。

#include <iostream>

double AvgFunction(int numTemp, int* temp);

int main()
{
    int numTemp;
    std::cout << "Please input the number of temperatures to be read" << std::endl;
    std::cin >> numTemp;
    int temp[numTemp];
    for (int i = 0;i < numTemp; i++)
    {
        std::cout << "Please input temperatures for day "<< (i+1) << std::endl;
        std::cin >> temp[i];
    }
    std::cout << AvgFunction(numTemp, temp) << std::endl;

    return 0;
}

double AvgFunction(int numTemp, int* temp)
{
    double returnVal = 0;
    for(int i = 0; i < numTemp; i++)
    {
        returnVal += temp[i];
    }
    returnVal /= numTemp;
    return returnVal;
}

我调用的函数 AvgFunction 写在 main 下面。此链接解释了函数,可能对学习如何成功解决此类问题最有用: http://www.cplusplus.com/doc/tutorial/functions/

要完成#3,您必须编写另一个函数。使用相同的结构,但内部不同的内容来解决问题。最简单的排序算法的解释: http://www.geeksforgeeks.org/selection-sort/

我在函数中使用的运算符称为复合运算符。如果您搜索“复合运算符”,则会获得更多信息。

我在 main 之前添加的行是一个函数原型。如果您搜索“函数原型”,可以了解更多信息。

希望对你有帮助

【讨论】:

  • 像 Stargatur 一样使用向量而不是 VLA here 就是原因
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 2014-11-04
  • 2013-04-17
  • 1970-01-01
相关资源
最近更新 更多