我正在写一个简单的程序,其中用户在整数数组中输入几个值。我写的代码到现在为止
#include<stdio.h>
#include<stdlib.h>
void main(){
int array[10],x,y;
for(x=0;x<10;x++)
{
scanf("%d",&array[x]);
//if the entered value is same as any of
//the previously entered values
//prompt the user to enter again till
//he enters a unique value.
} }
我希望数组中的整数是唯一的,如果用户输入先前输入的值,则应提示他再次输入。 我怎么可能这样做? 或许使用goto语句?但我猜这是非常沮丧的。 使用while循环?但我需要遍历以前输入的值来检查重复项,我无法对此进行编码。 任何帮助表示赞赏
答案 0 :(得分:4)
未测试:
#include<stdio.h>
#include<stdlib.h>
void main(){
int array[10],x,y;
x = 0;
while ( x < 10 ) {
int duplicated = 0;
scanf("%d",&array[x]);
//if the entered value is same as any of
//the previously entered values
//prompt the user to enter again till
//he enters a unique value.
for ( y = 0; y < x; y++ ) {
if ( array[x] == array[y] ) {
printf( "You already entered this! Try again.\n" );
duplicated = 1;
break;
}
}
if ( ! duplicated )
x++;
}
}