2017-10-14 14 views
0

我有一个程序,其中六个数字输入到数组中然后向后输出,如果找到数字26,则打印发现26.我的问题是我认为我有我的if语句在错误的地方,因为无论我输入数组它打印发现26.有人可以帮助我,告诉我我做错了什么? 的#include我在哪里添加一条if语句到我的程序中以查找某个数字

 int main() 
     { 
      int array[6]; 
      int x; 
      int number=26; 

     printf("Enter six numbers.\n\n"); 

     for(x = 0; x < 6; x++) { 
     printf ("Enter a number : ", x+1); 
     scanf ("%d",&array[x]); 

     if (number=26); 
     { 
      printf("FOUND 26!"); 
     } 

     } 

     for(x = 6; x > 0; x--) 
    { 



     printf("The numbers backwards are:"); 
     printf("%d\n", array[x- 1]); 

    } 


     return 0; 
    } 
+2

1.比较需要双'=='2.在'if'之后移除分号:if(number = 26);' - >'if(number == 26){'。 – usr

+0

您将26分配给'number',然后再次使用该变量,直到if语句(这也是您的代码中的赋值)。当然它会打印出“FOUND 26”。 – waka

+0

@victoriatibbs只要说出来,而不是电脑:“找到!”并且不要使用任何if语句。:) –

回答

1

这些陈述

if (number=26); 
    { 
     printf("FOUND 26!"); 
    } 

可以等价改写像

if (number=26) /* null statement */; 

    // separate compound statement 
    { 
     printf("FOUND 26!"); 
    } 

而且在if语句的条件中使用 有后的误操作;分配number=26而不是比较number == 26

还有一更何况,如果你会写的比较和删除分号这样

if (number == 26) 
    { 
     printf("FOUND 26!"); 
    } 

的声明没有任何意义,因为显然number等于26,因为它最初是初始化这样的方式。

我认为你需要输出消息,当数组以相反的顺序输出。该代码可能看起来像

 const int N = 26; 

    printf("Enter six numbers.\n\n"); 

    for(x = 0; x < 6; x++) { 
    printf ("Enter a number : ", x+1); 
    scanf ("%d",&array[x]); 
    } 

    printf("The numbers backwards are:"); 

    for(x = 6; x > 0; x--) 
    { 
     printf("%d\n", array[x- 1]); 
     if (array[x-1] == N) 
     { 
      printf("FOUND %d!\n", N); 
     } 
    } 
2

您应该使用:if (number == 26)代替if(number = 26)

第一个是比较,第二个是总是返回True的赋值。

而且,你有if

+0

谢谢我改变了代码它仍然说找到26输入一个数字 – victoriatibbs

1

您已使用if (number=26);。你应该使用的是if(number == 26)

=是一个赋值运算符,而==是一个比较运算符。

如果if语句错误,编译器将其视为空语句,则使用;

相关问题