gpt4 book ai didi

c++ - 逆序输出数组元素

转载 作者:行者123 更新时间:2023-11-28 00:09:14 36 4
gpt4 key购买 nike

用户将未知数量的整数放入数组中(动态)。程序必须以相反的顺序输出这些数字,例如:整数倒序排列。例子。 324,12,5987 --> 423, 21, 7895例子。 123, 100 --> 321, 1(去掉两个 0)

我不确定我是否走在正确的道路上,但我真诚地希望有人能给我建议一个解决方案。现在,我收到“段错误”错误 - 是否与数组空间有关?

这是我目前的代码:

int main()
{

int n,sk,rez;


int *a;


cout << "How many integers will there be? : " << endl;
cin >> sk;

a = new int[sk];


for (int i = 0; i < sk; i++)
{

cout << "Write an integer: " << endl;
cin >> n;
a[i] = n;
}


for (int i = 0; i < sk; i++)
{
// Gets amount of the digits of every integer.

int count, new_num = 0;
int* skaits;

while(a[i] > 0)
{
count++;
a[i] = a[i]/10;
}
skaits = new int [count];
for (int j = 0; j<count; j++)
{
skaits[j] = count; // Exmp. I write 324,12 , loop calculates 3 and 2 and puts that amount in an array.

// Loop to output integers in reverse order. Exmp. 324,12,5987 --> 423, 21, 7895

for (int k = 0; k<skaits[j]; k++)
{
new_num = new_num * 10 + (a[k] % 10);
a[k] = a[k]/10;


}
cout << new_num << endl;
}

}



delete []a;
return 0;

}

最佳答案

作为一般规则:尝试使您的代码更加模块化。我希望找到一个函数来计算单个数字的倒数。这更容易编写,也更容易调试,因为您将两个任务分开:收集数据、反转整数。

无论如何,深入查看您的代码:似乎在您计算了 count 之后,变量 a[i] 的内容已被销毁......( a[i]==0 退出 while 循环)。

反转十进制数的简单方法:

int reverse(int n) {
int m=0;
while (n>0) {
m *= 10;
m += n%10;
n /= 10;
}
return m;
}

关于c++ - 逆序输出数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33957120/

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