在整数数组中获取唯一输入

时间:2013-08-23 14:42:49

标签: c arrays

我正在写一个简单的程序,其中用户在整数数组中输入几个值。我写的代码到现在为止

#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循环?但我需要遍历以前输入的值来检查重复项,我无法对此进行编码。 任何帮助表示赞赏

1 个答案:

答案 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++;
    }      
}