gpt4 book ai didi

c - 仅接受一次数字的数组(代码不起作用)

转载 作者:行者123 更新时间:2023-11-30 21:31:02 25 4
gpt4 key购买 nike

我需要创建一个数组,每个数字只接受一次,如果用户尝试多次插入一个数字,那么他必须输入另一个数字......有人可以帮助我吗?到目前为止我已经尝试过:

#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/

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