int main(void) { int m, n; printf("Enter m,n;"); scanf("%d%d", &m,&n); while (m != n) { while (m > n) m = m - n; while (n > m) n = n - m; } printf("m=%d\n",m); return
时间: 2024-03-17 11:46:49 浏览: 56
这段代码缺少了一个右括号,应该修改为:
```
int main(void) {
int m, n;
printf("Enter m,n;");
scanf("%d%d", &m, &n);
while (m != n) {
while (m > n)
m = m - n;
while (n > m)
n = n - m;
}
printf("m=%d\n", m);
return 0;
}
```
这段代码是求 m 和 n 的最大公约数,使用辗转相减法实现。程序运行时需要输入两个整数 m 和 n,然后计算它们的最大公约数并输出。
相关问题
交换变量的值。输入a 和 b,然后交换它们的值,并输出交换后a 和 b 的值。请填空。。#include <stdio.h> int main(void){int a,b,temp; printf(“Enter a, b:”);scanf(“%d%d”,&a,&b);; a=b;; printf(“a=%d#b=%d\n”,a,b);return 0;}
请修改代码如下:
```
#include <stdio.h>
int main(void) {
int a, b, temp;
printf("Enter a, b:");
scanf("%d%d", &a, &b);
temp = a;
a = b;
b = temp;
printf("a=%d,b=%d\n", a, b);
return 0;
}
```
修改后的代码可以正确地将a和b的值交换,并输出交换后的结果。
int main(void) { char *cp; char symbol; int num; printf("enter how many symbols\n"); scanf("%c%d", &symbol,&num); cp = (char*)malloc(num * sizeof(char)); cp[0] = symbol; printf("%c ", cp[0]); return 0; }出错
这段代码有一个错误:
在读取输入时,应该将`%c`放在`%d`之前,因为`%c`会读取一个字符,而`%d`会读取一个整数,如果将它们颠倒,会导致输入顺序上的混乱。正确的输入语句应该是`scanf("%c%d", &symbol, &num);`。
下面是修改后的代码:
```
int main(void) {
char *cp;
char symbol;
int num;
printf("enter how many symbols\n");
scanf("%c%d", &symbol, &num);
cp = (char*)malloc(num * sizeof(char));
cp[0] = symbol;
printf("%c ", cp[0]);
return 0;
}
```
阅读全文