首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用C打印10 - Printf的幂

用C打印10 - Printf的幂
EN

Stack Overflow用户
提问于 2018-11-06 18:48:25
回答 2查看 800关注 0票数 4

我必须打印出从0到19的10种权力。问题是,当我想要显示第一个功率,应该是1 (10^0),我只是不能强迫printf不重复0's。我只允许在我的程序中使用一个printf和一个{ }块(这是主要功能)。

代码语言:javascript
复制
#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输出:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-06 18:52:12

不要使用%d,而是使用具有可变精度的%s,并将其从零位字符串中打印出来。如果精度为0,则不打印字符。

代码语言:javascript
复制
#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;
}
票数 4
EN

Stack Overflow用户

发布于 2018-11-06 19:26:04

您可以实现如下所需的结果:

代码语言:javascript
复制
#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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53178141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档