我必须打印出从0到19的10种权力。问题是,当我想要显示第一个功率,应该是1 (10^0),我只是不能强迫printf不重复0's。我只允许在我的程序中使用一个printf和一个{ }块(这是主要功能)。
#include <stdio.h>
int main(void) {
int power = 19;
for (int i = 0; i <= power; i++)
printf("1%0*d\n",i, 0);
return 0;
}My输出:
10 // this should be 1, but printf still puts 0 here
10
100
1000
10000
100000
1000000
10000000
100000000
1000000000
10000000000
100000000000
1000000000000
10000000000000
100000000000000
1000000000000000
10000000000000000
100000000000000000
1000000000000000000
10000000000000000000发布于 2018-11-06 18:52:12
不要使用%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;
}发布于 2018-11-06 19:26:04
您可以实现如下所需的结果:
#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;
}https://stackoverflow.com/questions/53178141
复制相似问题