帮我用C语言写一个不调用math.h的开方代码
时间: 2023-03-30 12:00:26 浏览: 80
好的,以下是一个不调用math.h的开方代码:
```c
#include <stdio.h>
double sqrt(double x) {
double guess = 1.;
double diff = 1.;
while (diff > .0001) {
double new_guess = (guess + x / guess) / 2.;
diff = new_guess - guess;
if (diff < ) {
diff = -diff;
}
guess = new_guess;
}
return guess;
}
int main() {
double x;
printf("请输入一个数:");
scanf("%lf", &x);
printf("该数的平方根为:%lf\n", sqrt(x));
return ;
}
```
这个代码使用了牛顿迭代法来计算平方根,不需要调用math.h库中的sqrt函数。
相关问题
帮我用C语言写一个不调用math.h的且保留三位小数的开方代码
您好,以下是不调用math.h的C语言开方代码,保留三位小数:
#include <stdio.h>
float sqrt(float num) {
float x = num;
float y = 1.;
float e = .001;
while (x - y > e) {
x = (x + y) / 2;
y = num / x;
}
return x;
}
int main() {
float num = 2.;
float result = sqrt(num);
printf("The square root of %.3f is %.3f\n", num, result);
return ;
}
用c语言写一个求素数的程序
### 回答1:
你好,以下是用 C 语言写一个求素数的程序:
```
#include <stdio.h>
int main() {
int n, i, j, is_prime;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d以内的素数有:\n", n);
for (i = 2; i <= n; i++) {
is_prime = 1;
for (j = 2; j < i; j++) {
if (i % j == ) {
is_prime = ;
break;
}
}
if (is_prime) {
printf("%d ", i);
}
}
printf("\n");
return ;
}
```
希望能帮到你!
### 回答2:
以下是一个使用C语言编写的求素数的程序:
```c
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0; // 不是素数
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0; // 不是素数
}
}
return 1; // 是素数
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("小于等于%d的素数有:", n);
for (int i = 1; i <= n; i++) {
if (isPrime(i)) {
printf("%d ", i); // 输出素数
}
}
printf("\n");
return 0;
}
```
此程序的主要思路是通过遍历从1到输入的正整数n,依次判断每个数是否为素数。使用`isPrime()`函数来判断一个数是否为素数。在该函数中,首先判断输入的数是否小于等于1,若是,则返回0(不是素数);然后通过一个循环从2到该数的平方根进行判断,若能整除则返回0(不是素数),否则返回1(是素数)。
在`main()`函数中,首先读入一个正整数n,然后通过循环逐个判断输出小于等于n的素数。
运行该程序,将会输出小于等于n的所有素数。例如,若输入10,则输出结果为 2 3 5 7。
希望对你有帮助!
### 回答3:
求素数的程序可以通过判断一个数是否能被2到该数开方的整数整除来判断是否为素数。以下是一个用C语言实现的求素数的程序:
```c
#include <stdio.h>
#include <math.h>
int isPrime(int num) {
// 判断num是否为素数
if (num <= 1) {
return 0;
}
int sqrtNum = sqrt(num); // 获取num的平方根
for (int i = 2; i <= sqrtNum; i++) {
if (num % i == 0) {
return 0; // num能被i整除,说明不是素数
}
}
return 1; // num不被2到sqrtNum之间的整数整除,说明是素数
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
if (isPrime(n)) {
printf("%d是素数\n", n);
} else {
printf("%d不是素数\n", n);
}
return 0;
}
```
该程序首先定义了一个`isPrime`的函数用于判断一个数是否为素数。该函数首先判断输入的数是否小于等于1,若是则直接返回0,因为小于等于1的数都不是素数。然后,通过循环从2到该数的平方根之间的每一个整数来判断是否能被整除,如果能被整除则返回0,说明不是素数;若循环结束后仍未被整除,则返回1,说明是素数。
在`main`函数中,首先输入一个正整数,然后调用`isPrime`函数判断该数是否为素数,并根据返回值输出相应的结果。
注意:以上代码中的求平方根函数`sqrt`需要使用数学库函数`math.h`,在编译时需要链接该库。