用C写输入两个整数m和n,以空格分开。输出点(m,n)到坐标原点的距离,小数点后必须保留2位有效数字(四舍五入),不足补零。
时间: 2023-06-03 16:08:15 浏览: 121
这个问题是数学相关,我可以回答。代码如下:
```c
#include <stdio.h>
#include <math.h>
int main() {
int m, n;
scanf("%d %d", &m, &n);
double distance = sqrt(m * m + n * n);
printf("%.2f", distance);
return 0;
}
```
注意:为了保证精度,需要使用 double 类型来储存距离。另外,为了保留两位有效数字,可以使用 printf 函数的格式化输出,其中 %f 表示输出一个浮点数,.2 表示保留两位小数,0 表示不足两位时补零。
相关问题
C语言输入两个正整数m和n输出m到n之间全部的素数
在C语言中,我们可以使用Sieve of Eratosthenes算法来找出给定范围内的所有素数。这是一个高效的算法,它通过不断排除合数来筛选出素数。以下是一个简单的实现示例:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
void print_primes(int m, int n) {
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
}
int main() {
int m, n;
printf("请输入两个正整数,m 和 n(m < n):");
scanf("%d %d", &m, &n);
if (m > n) {
printf("错误:m 必须小于 n。\n");
return 1;
}
print_primes(m, n);
return 0;
}
```
这个程序首先定义了一个辅助函数 `is_prime()` 来检查是否为素数,然后在 `print_primes()` 函数中遍历并输出指定范围内的素数。
用c语言 输入两个正整数m和n,输出他们的最小公倍数
在C语言中,计算两个正整数m和n的最小公倍数(LCM)可以使用欧几里得算法(也称为辗转相除法),这是求解两个数的最大公约数(GCD)的逆运算。以下是简单的步骤:
1. 首先,你需要编写一个函数来计算最大公约数(GCD)。这个函数通常通过递归或迭代实现,直到其中一个数变为0,此时另一个数就是它们的GCD。
```c
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
```
2. 然后,你可以利用公式 `LCM(a, b) = |a * b| / GCD(a, b)` 来计算最小公倍数。注意这里需要取绝对值,因为结果应该是正数。
```c
int lcm(int m, int n) {
int lcm_value = (m * n) / gcd(m, n); // 如果m和n都是正数,不需要绝对值
return lcm_value;
}
```
3. 最后,在主函数中接收用户输入并调用上述函数:
```c
#include <stdio.h>
int main() {
int m, n;
printf("请输入两个正整数:");
scanf("%d %d", &m, &n);
int result = lcm(m, n);
printf("两数的最小公倍数是:%d\n", result);
return 0;
}
```
阅读全文