C пример программы - PullRequest
       36

C пример программы

0 голосов
/ 25 марта 2020
void main()
{
    int a,b;

    for(a=10; a < 20; a++ ) 
    {   
        printf("value of a: %d", a);
        for(b=2; b<a; b++) 
        {  
            if(a%b==0)
            { 
                printf(" hello \n");
            }
            else
            {
                break;    
            }               
        }
    }
    getch();   
}

В приведенном выше коде (я знаю, что это совершенно бессмысленно, но как новичок, я просто пытаюсь прояснить некоторые моменты) вывод выглядит примерно так:

value of a: 10 hello 
value of a: 11value of a: 12 hello 
 hello 
 hello 
value of a: 13value of a: 14 hello 
value of a: 15value of a: 16 hello 
value of a: 17value of a: 18 hello 
 hello 
value of a: 19

, поэтому Я хочу напечатать слово hello всякий раз, когда a % b == 0, поэтому, когда a == 12, почему «hello» печатается трижды?

Во-вторых, как мне добавить символы новой строки ('\n') и отредактировать код, так что я получаю вывод, как это:

value of a : 10 hello
value of b : 11
value of c : 12 hello
value of d : 13
...

так далее ...

Ответы [ 4 ]

1 голос
/ 25 марта 2020
int main() { 
   int a,b; 
   for(a=10; a < 20; a++ ) { 
         printf("value of a: %d", a); 
         for(b=2; b<a; b++) { 
               if(a%b==0) { 
                    printf(" hello \n"); 
                } 
          } 
          printf("\n");
     } 
    return 0;
}

12% 2 == 0, 12% 3 == 0 и 12% 4 == 0, поэтому привет печатается дважды. Надеюсь, вы ищете это.

1 голос
/ 25 марта 2020

Hello печатается 3 раза по 12, потому что 12 делится на 2,3 и 4. Как только вы отметите 5, вы выйдете из l oop. Если вы хотите напечатать привет только для первого фактора, используйте это:

  if(a%b==0)
  { 
      printf(" hello \n");
      break;
  }

Вам не нужен перерыв в другом случае.

1 голос
/ 25 марта 2020

В соответствии с техническими характеристиками, которые вы предоставляете, этого будет достаточно:

#include <stdio.h>

int main() {
    int a, b = 2;

    for (a = 10; a < 20; a++)
    {
        printf("\nvalue of a: %d", a);
        if (a % b == 0) {
            printf(" hello");
        }
    }
    getch();
}

Пример кода

1 голос
/ 25 марта 2020

, когда a = 12, почему «три раза» печатается «привет»?

Когда a равно 12, b начинается с 2, а следующие значения для b: 3, 4 и 5.

12%2 == 0 therefore "Hello"
12%3 == 0 therefore "Hello"
12%4 == 0 therefore "Hello"
12%5 is NOT 0 therefore, break;

Именно поэтому вы видите "hello" 3 раза подряд.

...