求大神看一下我那里出错了
发布网友
发布时间:2023-05-07 00:27
我来回答
共2个回答
热心网友
时间:2023-11-24 07:04
在输入数组元素的时候出错了,a[]={0}数组只有一个元素,也就是说,他只能装下一个int,多了再往里装就会出错了.
热心网友
时间:2023-11-24 07:05
稍微修改了一下:
#include<iostream>
using namespace std;
int deletere(int *a, int n)
{
int i, j, k;
for (i = k = 1; i < n; i++)
{
for (j = 0; j < k; j++)
{
if (a[j] == a[i])
break;
}
if (j == k)
{
a[k] = a[i];
k++;
}
}
for (i = 0; i<k; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
int main()
{
cout << "输入数组长度:" << endl;
int n;
cin >> n;
int a[n];
cout << "输入数组:" << endl;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
deletere(a, n);
return 0;
}
追问你这个运行会报错
追答报什么错截一下图,我只修改了编译部分,没有修改你的运行逻辑部分。你要达到什么效果顺便说一下,还有你使用的编译器是什么。不过从你的采纳来看,你的问题应该解决了。
热心网友
时间:2023-11-24 07:04
在输入数组元素的时候出错了,a[]={0}数组只有一个元素,也就是说,他只能装下一个int,多了再往里装就会出错了.
热心网友
时间:2023-11-24 07:05
稍微修改了一下:
#include<iostream>
using namespace std;
int deletere(int *a, int n)
{
int i, j, k;
for (i = k = 1; i < n; i++)
{
for (j = 0; j < k; j++)
{
if (a[j] == a[i])
break;
}
if (j == k)
{
a[k] = a[i];
k++;
}
}
for (i = 0; i<k; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
int main()
{
cout << "输入数组长度:" << endl;
int n;
cin >> n;
int a[n];
cout << "输入数组:" << endl;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
deletere(a, n);
return 0;
}
追问你这个运行会报错
追答报什么错截一下图,我只修改了编译部分,没有修改你的运行逻辑部分。你要达到什么效果顺便说一下,还有你使用的编译器是什么。不过从你的采纳来看,你的问题应该解决了。
热心网友
时间:2023-11-24 07:04
在输入数组元素的时候出错了,a[]={0}数组只有一个元素,也就是说,他只能装下一个int,多了再往里装就会出错了.
热心网友
时间:2023-11-24 07:05
稍微修改了一下:
#include<iostream>
using namespace std;
int deletere(int *a, int n)
{
int i, j, k;
for (i = k = 1; i < n; i++)
{
for (j = 0; j < k; j++)
{
if (a[j] == a[i])
break;
}
if (j == k)
{
a[k] = a[i];
k++;
}
}
for (i = 0; i<k; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
int main()
{
cout << "输入数组长度:" << endl;
int n;
cin >> n;
int a[n];
cout << "输入数组:" << endl;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
deletere(a, n);
return 0;
}
追问你这个运行会报错
追答报什么错截一下图,我只修改了编译部分,没有修改你的运行逻辑部分。你要达到什么效果顺便说一下,还有你使用的编译器是什么。不过从你的采纳来看,你的问题应该解决了。