在C中打印10-Printf的幂
我必须打印10的幂,从0到19。问题是,当我想显示第一次幂时,它应该是1在C中打印10-Printf的幂,c,printing,printf,C,Printing,Printf,我必须打印10的幂,从0到19。问题是,当我想显示第一次幂时,它应该是1(10^0),我无法强制printf不重复0。我只允许在我的程序中使用一个printf和一个{}块(这是主函数) 不要使用%d,而是使用精度可变的%s,并从一串零开始打印。如果精度为0,则不打印字符 #include <stdio.h> int main(void) { int power = 19; char zeros[] = "00000000000000000000"; for
(10^0)
,我无法强制printf
不重复0。我只允许在我的程序中使用一个printf
和一个{}
块(这是主函数)
不要使用
%d
,而是使用精度可变的%s
,并从一串零开始打印。如果精度为0,则不打印字符
#include <stdio.h>
int main(void) {
int power = 19;
char zeros[] = "00000000000000000000";
for (int i = 0; i <= power; i++)
printf("1%.*s\n",i, zeros);
return 0;
}
#包括
内部主(空){
整数倍=19;
字符零[]=“00000000000000”;
对于(int i=0;i,请使用unsigned long long
,可以处理至少18446744073709551615或264-1的值
或者,如果您不喜欢硬编码初始化stings,如“00000000000000”
,请在同一循环中分配元素
注“%.*s”
可以打印以char
数组结尾的非空字符
#define MAX10POWER 30
int main(void) {
char zeros[MAX10POWER];
for (int i = 0; i <= MAX10POWER; zeros[i++] = '0')
printf("%d 1%.*s\n", i, i, zeros);
return 0;
}
或者是一个狡猾的好答案的变体,上升到21
int main(void) {
for (unsigned long long power = 1, i = 0; i <= 21; i++, power *= 8)
printf("%lld %llo\n", i, power);
}
int main(无效){
对于(unsigned long power=1,i=0;i您可以实现如下所示的预期结果:
#include <stdio.h>
int main(void) {
unsigned long long power = 1;
for (int i = 0; i <= 19; i++, power *= 10)
printf("%llu\n", power);
return 0;
}
#包括
内部主(空){
无符号长幂=1;
对于(int i=0;i哦,我明白了,所以它只需要字符的一定范围。非常聪明,谢谢。OP的要求是一对大括号,main
:(@WeatherVane返回到1组{}
)。
0 1
1 10
2 100
...
17 100000000000000000
18 1000000000000000000
19 10000000000000000000
#define MAX10POWER 30
int main(void) {
char zeros[MAX10POWER];
for (int i = 0; i <= MAX10POWER; zeros[i++] = '0')
printf("%d 1%.*s\n", i, i, zeros);
return 0;
}
0 1
1 10
2 100
...
28 10000000000000000000000000000
29 100000000000000000000000000000
30 1000000000000000000000000000000
int main(void) {
for (unsigned long long power = 1, i = 0; i <= 21; i++, power *= 8)
printf("%lld %llo\n", i, power);
}
#include <stdio.h>
int main(void) {
unsigned long long power = 1;
for (int i = 0; i <= 19; i++, power *= 10)
printf("%llu\n", power);
return 0;
}