边泉 2022-07-06 00:02 采纳率: 100%
浏览 24
已结题

学习C++与指针和数组有关的问题❤️😘💕

在学习c++,用的书是primer plus 第六版,做了第七章第二道练习题:要求用户输入最多10个高尔夫成绩,并将其存储在一个数组中。程序允许提早结束输入,并在一行上显示所有成绩,然后报告平均成绩。请使用3个数组处理函数来分别进行输入、显示和计算平均成绩。 编译环境:vs2022 c++14

我大体的功能都实现了,虽然有些小瑕疵。在这里有一些疑问,望解惑!!
1.在这里最多是10个高尔夫成绩,我却定义了一个11个元素的数组,为了在最后一个元素中放入‘0’这个控制字符,有没有更好的方法,不需要‘0’就能实现;
2.为了防止输入非double的字符,我在程序中加入了一个纠错机制,但是我输入非double字符以后,却发现程序运行出现了 断点调试错误 ,百思不得姐。

#include<iostream>
using namespace std;
double* input();
void output(double*);
double average(double*);
int main()
{
    double* p;
    cout << "Please enter the scores(minus number to end):" << endl;
    p = input();
    if (*p == -1.1)
    {
        http:delete []p;
        return 0;
    }
    output(p);
    cout << average(p);
    goto http;
}
double* input()
{
    double* p = new double[11];
    *(p + 10) = 0;
    double temp;
    int i = 0;
    double error[] = { -1.1 };
    for (i = 0; i < 10; i++)
    {
        cout << "Enter score #" << i + 1 << ": ";
        cin >> temp;
        if (!cin) {
            cin.clear();
            cin.sync();
            while (cin.get() != '\n')
                continue;
            cout << "Bad input; input process terminated." << endl;
            p = error;
            return p;
        }
        else if (temp < 0)
        {
            for (int j = i; j < 10; j++)
                *(p + j) = 0;
            break;
        }
        *(p+i) = temp;
    }
    return p;
}
void output(double* p)
{
    int i = 0;
    while (*(p+i) != 0)
    {
        cout << *(p + i) << " ";
        ++i;
    }
    cout << endl;
}
double average(double* p)
{
    int i = 0;
    double sum = 0, mean = 0;
    while (*(p + i) != 0)
    {
        sum += *(p + i);
        ++i;
    }
    mean = sum / i;
    return mean;
}

img


有这个窗口在的时候,微信和qq的即使截图功能都失效,只能保存截图为文件,而不能复制截图到剪切板。

望da lao点拨啊,头都要秃了!!
  • 写回答

2条回答 默认 最新

  • HWsir 2022-07-06 08:18
    关注

    \0是对字符串而言的,整形数组不需要

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月16日
  • 已采纳回答 7月8日
  • 创建了问题 7月6日

悬赏问题

  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器