Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我需要创建一个仅接受一次每个数字的数组,如果用户尝试多次插入一个数字,那么他必须输入另一个数字...有人可以帮助我吗?
到目前为止,我已经尝试过了:
但是代码只是行不通,我也不知道为什么
希望这可以帮助您
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我需要创建一个仅接受一次每个数字的数组,如果用户尝试多次插入一个数字,那么他必须输入另一个数字...有人可以帮助我吗?
到目前为止,我已经尝试过了:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a[5];
int i,j,num;
scanf("%d",&num);
a[0]=num;
for(i=1;i<5;++i){
again: scanf("%d",&num);
if(a[i]!=a[i-1])
a[i]=num;
else
goto again;
}
for(i=0;i<5;i++)
printf("%4d\n",a[i]);
system("pause");
return 0;
}
但是代码只是行不通,我也不知道为什么
最佳答案
从您的代码中可以看出,给定数组必须被填充,但其中不应包含冗余值。
接下来的代码将重复进行,直到数组中没有多余的值为止,一旦数组被填充,它将终止。
int a[5],i=1,k=0,p;
int num;
scanf("%d",&num);
a[0]=num;
while(i<5)
{
scanf("%d",&num);
for(p=0;p<=k;p++)
{
if(a[p]==num)
{
break;
}
if(p==(k))
{
a[i]=num;
k=i;
i++;
}
}
}
for(i=0;i<5;i++)
{
printf("%d",a[i]);
}
希望这可以帮助您
关于c - 只接受一个数字的数组(代码无效),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20586273/