【发布时间】:2018-11-18 17:22:14
【问题描述】:
我正在尝试编写一个程序来读取一个包含 15 个元素的数组,并为每种数字仅输出一次该数组中的数字(不会输出重复)。我在标题中收到错误,我不知道为什么。这是我的代码:
#include <stdio.h>
void main () {
int initial[15], final[15], nf=1, aux;
printf("Insert the 15 elements:\n");
for (int i = 0; i < 15; ++i)
{
printf("Insert the %dº element:\n",i+1);
scanf("%d", &initial[i]);
}
final[0]=initial[0];
for (int i = 1; i < 15; ++i)
{
for (int k = 0; k < nf ; ++k)
{
if (initial[i]!=final[k]) {
final[nf]=initial[i];
nf++;
}
}
}
for (int c = 0; c < nf ; ++c)
{
printf("%d, ",final[c]);
}
}
【问题讨论】:
-
你用什么编译器?哪个版本?你试图理解你的问题是什么?在调试中你能找到什么?
-
写入超出本地数组范围的典型症状。
-
添加
printf以观察nf的值,因为您正在递增它。我敢打赌它会在某个时候达到15。 -
建议使用调试器仔细查看循环中的变量。 (对我来说,控制台打印只是石器时代的调试)
-
@Asu 尝试了你的建议,确实,nf 达到了 85。但只有当初始数组中的数字与最后一个数组中的数字不同时,它才会增加,对吧?
标签: c