0
#include <stdio.h>
#include <process.h>

int main()
{
     int check;
     int enter[7];
     int i,j;

     printf("enter any 7 number to be stored");
     for(i = 0; i < 7; i++)
           scanf("%d" ,&enter[i]);
     printf("\nenter any number to check:");
     scanf("%d" ,&check);
     for (i = 0; i < 7; i++)
     {
           if (enter[i]=check)
           {
                printf("your entry is valid");
                exit(0);
           }
           else if(enter[6]!=check)
           {
                 printf("your entry is not valid");
                 exit(0);
           }
           else
                 continue;
     }
     return 0;
}     

これはエラーなしで実行されますが、正しく動作しません..常に入力が有効であると出力されます....配列にない数値を入力しても:(

4

6 に答える 6

4

これは代入であり、等価ではありません:

if (enter[i]=check)

への変更:

if (enter[i] == check)

さらに、常に入力操作の結果を確認してください。

if (1 != scanf("%d" ,&enter[i]))
{
    /* Handle invalid value. */
}

後続のコードが、値が割り当てられた変数で動作するようにします。

于 2013-02-26T15:32:50.647 に答える
1

この行

if (enter[i]=check)

あなたが期待することをしません。あなたはおそらく意味した

if (enter[i]==check)

割り当ては有効な C ですが、等しいかどうかをチェックする代わりに、enter[i]equalcheckを設定し、 の値がゼロであるかどうかをチェックします。ゼロ以外の場合、 の初期値に関係なく、条件は成功します。がゼロの場合、の初期値に関係なく、条件は失敗します。これはよくある間違いです。多くのコンパイラは、状況を警告する警告を発行します。checkenter[i]checkenter[i]

于 2013-02-26T15:32:43.823 に答える
0

= の適切な使用法は代入演算子ですが、== は等価性をテストしています

于 2013-02-26T16:07:06.147 に答える
0
#include<stdio.h>
#include<process.h>
int main()

{
int check;
int enter[7];
int i,j;
printf("enter any 7 number to be stored");
for(i=0;i<7;i++)
{
    scanf("%d" ,&enter[i]);

}
printf("\nenter any number to check:");
scanf("%d" ,&check);
for (i=0;i<7;i++)
{
   // printf("\nvalue of i is %d\n" ,i);
    if (check==enter[i])
    {
        printf("your entry is valid");
        exit(0);
    }
    else if(enter[i]!=check && i==6)
    {

        printf("your entry is not valid");
        exit(0);
    }
    else
    continue;
}
return 0;
}

 now i got it all right . thanks :)
于 2013-02-27T00:49:33.187 に答える
0
enter[i]==check)// 2 for compare
于 2013-02-26T15:38:18.340 に答える
0

=は代入演算子であり、等価ではありません。やっている:

if (enter[i]=check)

enter[i]は value を受け取り、が非ゼロcheckかどうかをチェックします。enter[i]

if (enter[i] == check)
于 2013-02-26T15:33:02.017 に答える