我想扩展我现在正在工作的程序的一部分的功能..
现在我的代码在屏幕上显示:
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中的许多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”,而不是数字......
谢谢。
答案 0 :(得分:3)
要查明数字n
是否可以被10整除,请使用:
if ((n % 10) == 0) ...
这是模运算符,当n
除以10时返回余数 - 当你这样做时,可被10整除的数字的余数为零,所有其他数字的余数为1到9(至少在非负空间是你工作的地方 - 可能对于负数不同但我不打算检查,因为它在这里不相关)。
要查找您需要使用"ten"
字符串输出的号码,只需将n
除以10即可。
因此,print语句将变为类似:
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 :(得分:1)
#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;
}
答案 2 :(得分:0)
首先,您可能想要检查IF是否可以被10整除。看这里如何做到这一点: Check if a double is evenly divisible by another double in C?
然后你可以检查它除以10的次数并打印出来