gpt4 book ai didi

C++ 程序只列出输入到数组中的最后一个值

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:03:50 27 4
gpt4 key购买 nike

我正在尝试将数组中存在的值输出到控制台,这些值在运行时被接受。但是当我运行这个程序时,我只得到数组中的 5 个值作为最后一个值。

例如:如果我给 0 1 2 3 4 作为这个程序的五个值,那么输出显示为 4 4 4 4 4

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
int arrsize = 5;
int *ptr = new int[arrsize];

*ptr = 7;

cout << *ptr << endl;
cout << "enter 5 values:";

for (int i = 0; i < arrsize; i++)
{
cin >> *ptr;

cin.get();
}

cout << "the values in the array are:\n ";

for (int i = 0; i < arrsize; i++)
{
cout << *ptr << " ";
}

delete[] ptr;
cin.get();
return 0;
}

最佳答案

你的两个循环:

for (int i = 0; i < arrsize; i++)
...

遍历从未在循环内使用的变量 i。您总是使用 *ptr ,它总是引用动态分配数组的第一个元素。您应该改用 ptr[i]


其中的一部分,动态分配是一个高级主题。我建议首先坚持使用更简单和更常用的东西:

std::cout << "Enter values:";
std::vector<int> array(std::istream_iterator<int>(std::cin), {});
std::cout << "\nThe values in the array are:\n";
std::copy(begin(array), end(array), std::ostream_iterator<int>(std::cout, " "));

Live demo

关于C++ 程序只列出输入到数组中的最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31706302/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com