C语言输入两个值N和M,输出N做M次减半后的值。比如100,减半后依次为50, 25, 12…,减半3次后是12。输入不考虑0,负数或者其他特殊情况。
时间: 2024-04-10 14:33:53 浏览: 46
您可以使用以下的C语言代码来实现输入两个值N和M,输出N做M次减半后的值:
```c
#include <stdio.h>
int main() {
int N, M;
printf("请输入N的初始值:");
scanf("%d", &N);
printf("请输入M的次数:");
scanf("%d", &M);
int i;
for (i = 0; i < M; i++) {
N = N / 2;
}
printf("N做M次减半后的值为:%d\n", N);
return 0;
}
```
请注意,该代码假设输入的N和M都是正整数,并且没有考虑输入错误的情况。在实际应用中,可能需要添加一些错误处理的逻辑来确保输入的合法性。
相关问题
c语言:输入两个数n和m,输出[n,m]间的所有完数。
好的,针对你的问题,以下是一种C语言的实现方式:
```c
#include <stdio.h>
// 判断一个数是否为完数
int isPerfectNumber(int num) {
int i, sum = 0;
for (i = 1; i <= num/2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum == num;
}
int main() {
int n, m, i;
printf("请输入两个数n和m:");
scanf("%d %d", &n, &m);
printf("%d和%d之间的完数有:", n, m);
for (i = n; i <= m; i++) {
if (isPerfectNumber(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
这段代码中,`isPerfectNumber`函数用于判断一个数是否为完数,通过遍历该数的因子并求和,最后返回结果与该数本身相比较。主函数包括输入n和m的值,循环判断并输出[n,m]间的所有完数。
用c语言输入两个整数mn输出m到n之间的所有素数
好的,这是一个算法问题,我可以回答。下面是C语言的代码实现:
```
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
// 判断素数
int isPrime(int num) {
int i;
for(i=2; i<=sqrt(num); i++) {
if(num%i==0) {
return 0;
}
}
return 1;
}
int main() {
int m,n;
printf("请输入两个整数m和n(m<n):\n");
scanf("%d%d",&m,&n);
printf("m到n之间的所有素数是:\n");
if(m>n) {
printf("输入错误\n");
exit(0); // 退出程序
}
int i;
for(i=m; i<=n; i++) {
if(isPrime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
希望这个代码能够帮到您。