[英]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.