早教吧作业答案频道 -->其他-->
c语言程序编写(初学)(1)利用公式e≈1+1/1!+1/2!+1/3!+…+1/n!,编程序求e的近似值,直到第n项(1/n!)
题目详情
c语言程序编写(初学)
(1) 利用公式e≈1+1/1!+1/2!+1/3!+…+1/n!, 编程序求e的近似值,直到第n项(1/n!)<10-6为止。
提示:
a)利用二重循环编程实现,其中内层循环求n!,外层循环进行累加求和;
b)外层循环终止条件:(1/n!)<10-6。
(2) 编写一个简单计算器程序,输入格式为:data1 op data2.其中data1和data2是参加运算的两个数,op为运算符,其取值只能是+、-、*、/。
提示:根据op的取值使用switch语句实现计算功能。
(1) 利用公式e≈1+1/1!+1/2!+1/3!+…+1/n!, 编程序求e的近似值,直到第n项(1/n!)<10-6为止。
提示:
a)利用二重循环编程实现,其中内层循环求n!,外层循环进行累加求和;
b)外层循环终止条件:(1/n!)<10-6。
(2) 编写一个简单计算器程序,输入格式为:data1 op data2.其中data1和data2是参加运算的两个数,op为运算符,其取值只能是+、-、*、/。
提示:根据op的取值使用switch语句实现计算功能。
▼优质解答
答案和解析
a)中用一个循环就行了为啥要用两个捏?
#include "stdio.h"
int main(){
int i,N=1;
double EE=0;
for(i=1;(1.0/N)>1e-6;i++){
N*=i;
EE+=1.0/N;
}
printf("e的值为:%f",EE);
return 0;
}
我又改了下使用两个循环:
#include "stdio.h"
int main(){
int i,j,m=1;
double EE=0;
for(i=1;(1.0/m)>1e-6;i++){
int N=1;
for(j=1;j<=i;j++){
N*=j;
}
EE+=1.0/m;
}
printf("e的值为:%f",EE);
return 0;
}
第二个
#include "stdio.h"
void main(){
float data1,data2;
char op;
printf("请输入计算式:");
scanf("%f%c%f",&data1,&op,&data2);
switch(op)
{
case '+': printf("%f",data1+data2);break;
case '-': printf("%f",data1-data2);break;
case '*': printf("%f",data1*data2);break;
case '/': printf("%f",data1/data2);break;
default:printf("您输入等式有误!退出!\n");
}
}
#include "stdio.h"
int main(){
int i,N=1;
double EE=0;
for(i=1;(1.0/N)>1e-6;i++){
N*=i;
EE+=1.0/N;
}
printf("e的值为:%f",EE);
return 0;
}
我又改了下使用两个循环:
#include "stdio.h"
int main(){
int i,j,m=1;
double EE=0;
for(i=1;(1.0/m)>1e-6;i++){
int N=1;
for(j=1;j<=i;j++){
N*=j;
}
EE+=1.0/m;
}
printf("e的值为:%f",EE);
return 0;
}
第二个
#include "stdio.h"
void main(){
float data1,data2;
char op;
printf("请输入计算式:");
scanf("%f%c%f",&data1,&op,&data2);
switch(op)
{
case '+': printf("%f",data1+data2);break;
case '-': printf("%f",data1-data2);break;
case '*': printf("%f",data1*data2);break;
case '/': printf("%f",data1/data2);break;
default:printf("您输入等式有误!退出!\n");
}
}
看了 c语言程序编写(初学)(1)...的网友还看了以下: