1

我正在编写一个简单的程序,其中用户在整数数组中输入一些值。我写到现在的代码是这样的

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

4

1 回答 1

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++;
    }      
}
于 2013-08-23T14:46:39.710 回答