Печать на экране по определенной строке цифр - PullRequest
0 голосов
/ 02 апреля 2012

Я хочу расширить функциональность части программы, над которой я сейчас работаю ..

Прямо сейчас мой код выводит это на экран:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
1999

Но я собираюсь сделать это: положить десятки в текст без номера. Также нумерация десятки.

1
2
3
4
5
6
7
8
9
ten 1
11
12
13
14
15
16
17
18
19
ten 2
21
22
...
1999

Но с функциями, которые я знаю о C, я не могу понять, как это сделать. Может сделать это со многими if в for, но не хочет, чтобы код был настолько обширным.

Код первого вывода такой:

#include<stdio.h>

int main(void) {

    int i, j=2000;

        for(i=1;i<=j;i++)
        {
            printf("%d\n", i);

        }

    return 0;
}

Очень просто, и я хочу сохранить это.

В ПРОСТЫХ СЛОВАХ: все числа, заканчивающиеся на 0, должны быть напечатаны "десять х", вместо числа ...

Спасибо.

Ответы [ 3 ]

3 голосов
/ 02 апреля 2012

Чтобы узнать, делится ли число n на десять, вы используете:

if ((n % 10) == 0) ...

Это оператор по модулю, который возвращает остаток, когда n делится на десять - числа, делимые на десять, имеют остаток от нуля, когда вы делаете это, все остальные числа имеют остаток от одного до девяти (по крайней мере, в -отрицательное место, где вы работаете - оно может может отличаться для отрицательных чисел, но я не собираюсь проверять, так как оно здесь неактуально).

Чтобы узнать, какое число нужно вывести с помощью строки "ten", просто разделите n на десять.

Таким образом, ваше печатное заявление станет чем-то вроде:

if ((i % 10) == 0)
    printf ("ten %d\n", i / 10);
else
    printf ("%d\n", i);

Внесение этого изменения даст вам вывод:

1
2
3
4
5
6
7
8
9
ten 1
11
12
:
1988
1989
ten 199
1991
1992
1993
1994
1995
1996
1997
1998
1999
ten 200

что, кажется, то, что вы ищете.


И еще один момент: ваш вывод останавливается на 1999, а не на 2000, несмотря на код. Если это то, что вам действительно нужно, измените j на 1999 или измените оператор for на < вместо <=.

1 голос
/ 02 апреля 2012
    #include <stdio.h>
    int main(void)
    {
      int i, j=2000;
      for( i = 1; i <= j; i++ )
      {
        if ( !i%10 ) // if i / 10 is an integer...
        {
          printf ("ten %d\n", i/10);
        } else
        {
          printf("%d\n", i);
        }
      }
      return 0;
    }
0 голосов
/ 02 апреля 2012

Во-первых, вы можете проверить, если число делится на 10. Посмотрите, как это сделать: Проверьте, делится ли двойное число равномерно на другое двойное число в C?

затем вы можете проверить, сколько раз его можно разделить на 10, и распечатать их

...