C语言调用函数计算a²+b²
时间: 2023-12-18 07:05:48 浏览: 175
可以使用如下代码实现:
```c
#include <stdio.h>
int sum_squares(int a, int b) {
return a*a + b*b;
}
int main() {
int a = 3;
int b = 4;
int result = sum_squares(a, b);
printf("%d\n", result);
return 0;
}
```
这里定义了一个名为`sum_squares`的函数,它接受两个整数参数`a`和`b`,并返回它们的平方和。在`main`函数中,我们声明了两个整数变量`a`和`b`,并将它们分别初始化为3和4。然后,我们调用`sum_squares`函数,将`a`和`b`作为参数传递给它,将返回值赋值给`result`变量。最后,我们使用`printf`函数打印出`result`的值,即7。
相关问题
c语言编写程序解ax²+bx+c=0
在C语言中,你可以使用数学库函数`sqrt()`和一些基本的数学运算来编写一个程序来求解一元二次方程 ax² + bx + c = 0。这里有一个简单的算法步骤:
1. 首先,检查a是否为零,因为如果a等于零,这不是一个标准的一元二次方程,而是一个线性方程。
2. 计算判别式 `D = b² - 4ac`,它用于判断方程的根的情况:
- 如果D > 0,有两个实数根;
- 如果D = 0,有一个重根(即两个相同的实数根);
- 如果D < 0,有两个复数根(共轭复数对)。
3. 根据判别式的值,分别计算两个解(若存在):
- 当D > 0时,使用公式 x = [-b ± sqrt(D)] / (2a)。
- 当D = 0时,x = -b / (2a)。
- 当D < 0时,将方程转换为复数形式,例如 x = [(-b + i*sqrt(-D)) / (2a), (-b - i*sqrt(-D)) / (2a)]。
下面是一个简化的示例代码片段,用于求解一元二次方程:
```c
#include <stdio.h>
#include <math.h>
void quadratic_solver(double a, double b, double c, double *real_root1, double *real_root2, double *complex_roots) {
double discriminant = b * b - 4 * a * c;
if (a == 0) {
printf("这不是一个标准的一元二次方程!");
return;
}
if (discriminant >= 0) {
*real_root1 = (-b + sqrt(discriminant)) / (2 * a);
*real_root2 = (-b - sqrt(discriminant)) / (2 * a);
if (discriminant == 0) {
printf("有两个相等的实数根: %.2lf\n", *real_root1);
} else {
printf("有两个不同的实数根: %.2lf 和 %.2lf\n", *real_root1, *real_root2);
}
} else {
double imaginary_part = sqrt(-discriminant) / (2 * a);
*complex_roots = {-b / (2 * a), imaginary_part};
printf("有两对共轭复数根: (%.2lf + %.2lfi) 和 (%.2lf - %.2lfi)\n", *complex_roots[0], *complex_roots[1], *complex_roots[0], *complex_roots[1]);
}
}
int main() {
double a, b, c;
// 获取用户输入的系数...
// 调用 quadratic_solver 函数...
return 0;
}
```
用C语言写aⅹ²+bx + c 的解
在C语言中,计算二次方程 \(ax^2 + bx + c = 0\) 的解通常需要用到求根公式或者称为二次公式。二次公式是:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
其中 \(a\), \(b\), 和 \(c\) 是二次方程的系数。
以下是C语言中编写的一个简单函数,用于计算给定二次方程的两个解:
```c
#include <math.h> // 引入数学库,需要sqrt()函数
void solve_quadratic(double a, double b, double c) {
double discriminant = b * b - 4 * a * c; // 计算判别式
if (discriminant >= 0) { // 如果判别式非负
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程的两个解分别是: %.2lf 和 %.2lf\n", root1, root2);
} else { // 如果判别式小于0,说明有两个复数解
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("方程有一个实数解 %.2lf 和一个复数解 %.2lf + i%.2lf\n",
realPart, realPart, imaginaryPart);
}
}
// 调用函数
int main() {
double a, b, c;
printf("请输入二次项系数(a): ");
scanf("%lf", &a);
printf("请输入一次项系数(b): ");
scanf("%lf", &b);
printf("请输入常数项(c): ");
scanf("%lf", &c);
solve_quadratic(a, b, c);
return 0;
}
```
阅读全文