簡體   English   中英

在屏幕上以特定的數字字符串打印

[英]Print on screen at a certain string of numbers

我想擴展我正在工作的程序的一部分的功能。

現在我的代碼在屏幕上顯示:

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知道的功能,我不知道該怎么做。 可以在fors中使用許多ifs來做到這一點,但不希望代碼如此廣泛。

第一個輸出的代碼是這樣的:

#include<stdio.h>

int main(void) {

    int i, j=2000;

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

        }

    return 0;
}

非常簡單,我想保留。

簡而言之:所有以0結尾的數字都應打印為“十個x”,而不是數字...

謝謝。

要確定數字n是否可被10整除,請使用:

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

這是模運算符,當n除以10時,將返回余數-當您將數字除以10時,其余數為零,所有其他數的余數為1到9(至少在非負數空間中為您在哪里工作-負數可能有所不同,但由於它與此處無關,因此我不對其進行檢查。

要找到需要用"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更改for 1999或將for語句更改for使用<而不是<=

    #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;
    }

首先,您可能要檢查數字是否可以被10整除。請看這里如何做: 檢查一個雙精度數是否可以被C中的另一個雙精度數整除?

然后,您可以檢查可以除以10的次數,然后將其打印出來

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM