用c语言编写输入一个非负整数n(0<=n <31),求2的n次方。本题增加对非负整数的判断。 输入格式: 输入一个非负整数n。n的取值范围为[0,31)。 输出格式: 若输入的整数n小于0或者大于等于31,则输出“输入的整数超出范围” 否则输出2的n 次方值。
时间: 2024-12-12 15:16:58 浏览: 70
在C语言中,你可以使用while循环和条件语句来解决这个问题。首先,你需要读入用户的输入,然后检查它是否在指定范围内。如果在范围内,计算并输出2的n次方;否则,提示用户输入超出范围。下面是相应的代码实现:
```c
#include <stdio.h>
int main() {
int n;
// 输入循环,直到得到有效的非负整数
while (scanf("%d", &n) == 1 && n >= 0 && n < 31) {
long long result = 1; // 使用long long防止溢出
for (int i = 0; i < n; i++) {
result *= 2;
}
printf("2的%d次方值为:%lld\n", n, result);
break; // 结束循环,因为我们已经得到了有效结果
} else if (n < 0 || n >= 31) {
printf("输入的整数超出范围\n");
}
return 0;
}
```
相关问题
c语言输入一个正整数n,n<=20;求n的阶层! 2、输入两个正整数m,n;求m的n次方
1. 求n的阶乘
```c
#include <stdio.h>
int main() {
int n, result = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
result *= i;
}
printf("%d的阶乘为:%d", n, result);
return 0;
}
```
2. 求m的n次方
```c
#include <stdio.h>
int main() {
int m, n, result = 1;
printf("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
for (int i = 1; i <= n; i++) {
result *= m;
}
printf("%d的%d次方为:%d", m, n, result);
return 0;
}
```
c语言任意给定一个正整数N(N<=100),计算2的n次方的值。 输入一个正整数N。 输出 输出2的N次方的值
以下是使用C语言计算2的N次方的程序:
```c
#include <stdio.h>
int main() {
int N;
printf("请输入N的值:");
scanf("%d", &N);
long long result = 1;
for (int i = 0; i < N; i++) {
result *= 2;
}
printf("2的%d次方的值为:%lld\n", N, result);
return 0;
}
```
程序中使用了一个for循环来计算2的N次方,每次循环都将result乘以2。需要注意的是,由于2的N次方可能非常大,因此result需要使用long long类型来存储。
阅读全文
相关推荐















