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]equal check然后检查值check是否为零。如果它不为零,则条件成功,而不管 的初始值如何enter[i]。如果check为零,则条件失败, - 再次,无论 的初始值如何enter[i]。这是一个非常常见的错误;许多编译器会发出警告以提醒您注意这种情况。

于 2013-02-26T15:32:43.823 回答
0

=是赋值运算符,根本不是相等。正在做:

if (enter[i]=check)

enter[i]将取值check,然后检查是否enter[i]为非零。

if (enter[i] == check)
于 2013-02-26T15:33:02.017 回答
0
enter[i]==check)// 2 for compare
于 2013-02-26T15:38:18.340 回答
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 回答