c - 在屏幕上打印特定的数字字符串

标签 c math for-loop

我想扩展我现在正在工作的程序的一部分的功能..

现在我的代码在屏幕上打印了这个:

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 函数,我不知道该怎么做。 可以在 for 中使用很多 if 来做到这一点,但不希望代码如此广泛。

第一个输出的代码是这样的:

#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能被十整除,你使用:

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使用语句 <而不是 <= .

关于c - 在屏幕上打印特定的数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9969676/

相关文章:

c - c中按位编程的奇怪结果

c - 递归查找数组的最大元素

php计算 float

algorithm - "guess the number"任意有理数的游戏?

java - For循环逻辑运行但没有意义

c - 嵌入: 4-wire resistive touchscreen

无法在c中使用系统函数调用Linux命令

c - 为什么 gdb 将 sqrt(3) 评估为 0?

R for循环,如何在每次迭代的循环外部存储数据帧以避免性能下降

R:中断 for 循环