标题:帮我看看我哪错了,不应该输出2的乘方吗
只看楼主
小白程序
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2022-2-24
结帖率:100%
已结贴  问题点数:20 回复次数:4 
帮我看看我哪错了,不应该输出2的乘方吗
#include<stdio.h>
int main()
{
    int a, b = 0;
    printf("请输入一个整数:");
    scanf_s("%d", &a);
    while (b < a){
        b++;
        if ((2^b)<=a)
            printf("%d\n", 2^b);
    }printf("\n");
    return 0;
}
搜索更多相关主题的帖子: int while 输出 return printf 
2023-03-17 21:33
sdta
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
这是VFP论坛,发错地方了吧?

坚守VFP最后的阵地
2023-03-17 21:39
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
去C语言的地方发
2023-03-17 21:44
s96281
Rank: 2
等 级:论坛游民
威 望:3
帖 子:8
专家分:37
注 册:2022-12-8
得分:10 
"^"在C語言中是位元運算子中的XOR
要進行冪運算的話需要引入math.h頭文件
程序代码:
#include<stdio.h>
#include<math.h>

int main()
{
    int a, b = 0;
    printf("请输入一个整数:");
    scanf("%d", &a);
    while (b < a){
        b++;
        if (pow(2,b)<=a)
            printf("%f\n", pow(2,b));
    }printf("\n");
    return 0;
}

或是自己寫一個函式
程序代码:
#include<stdio.h>

int my_pow(int a, int b) {
    int ans = 1;
    for (int i = 0; i < a; i++) {
        ans *= b;
    }
    return ans;
}

int main()
{
    int a, b = 0;
    printf("请输入一个整数:");
    scanf("%d", &a);
    while (b < a){
        b++;
        if (my_pow(2,b)<=a)
            printf("%d\n", my_pow(2,b));
    }printf("\n");
    return 0;
2023-03-17 22:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
手机打字,因为麻烦,所以好多地方不想改了

程序代码:
#include <stdio.h>

int main( void )
{
    int n;
    printf("请输入一个整数:");
    scanf("%d", &n);
    for( int i=1; (1<<i)<=n; ++i )
        printf( "%d\n", 1<<i );
}


输出: 2 4 8 16
2023-03-17 23:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511584-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.313564 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved