2016-04-14 8 views
-4

Können Sie mir helfen? Wenn ich diese Anweisung ausfühle, sagt sie immer wieder aus der oberen Grenze heraus, auch wenn dies nicht der Fall ist. Was ist das Problem? Vielen Dank.C Programmierung While-Schleife. Variable vergleichen mit Variable

if(number_o_1 <= higher) 
    { 
     printf("Random number has reached upper bound.\n"); 

    } 
     else 
     { 
      printf("Number 1: %d\n", number_o_1); 
      number_o_up=number_o_1+n_multiple*(x-1); 
      while(number_o_up<=higher) 
      for(x=2;x<number_r;x++) 
      printf("Number %d: %d\n", x,number_o_up); 
     } 
+0

Da keine Variablendeklarationen vorgesehen sind, niemand kann diesen Code etwas Sinnvolles sagen. – Lundin

Antwort

0
number_o_1<= higher 

Sure Sie drucken möchten, dass die Zahl der Obergrenze erreicht hat, wenn es weniger ist als oder gleich Ihre obere Grenze?

+0

Ich wusste nicht, dass ich das getan habe. Danke für das Aufzeigen. –

0

Es ist etwas schwierig, die Logik zu bestimmen, die Sie implementieren möchten, aber sehen Sie sich das Beispiel mit genauen Werten und Kommentaren an, um den Else-Block zu treffen.

#include <stdio.h> 
int x = 2; 
int higher = 100; 
int number_o_1 = 10; 
int number_r = 4; 
int number_o_up = 1; 
int n_multiple = 2; 

int main() 
{ 
    if(number_o_1 >= higher) // probably want >= here to hit else 
    { 
     printf("Random number has reached upper bound.\n"); 
    } 
    else 
    { 
     printf("Number 1: %d\n", number_o_1); 
     number_o_up = number_o_1 + n_multiple * (x-1); // number_o_up = 12 
     while(number_o_up <= higher)     // 12 <= 100 
     { 
      for(x = 2; x < number_r; x++)    // cond. 2 < 4 
      { 
       printf("Number %d: %d\n", x, number_o_up); 
      } 

      number_o_up++; //needs to change higher or number_o_up to get out of while 
     } 
    } 
} 

Ausgang:

sh-4.3$ main 
Number 1: 10 
Number 2: 12 
Number 3: 12 
Number 2: 13 
Number 3: 13 
Number 2: 14 
... 
Number 3: 100