200分悬赏C语言高手进!帮忙改一下代码!

这是我变得代码,要求是,计算出加减乘除、取余、累加、阶乘、安0要结束运算,不能安anykey 结束!
#include<stdio.h>
#include<math.h>
void displaymenu();
double sum(double a,double b);
double sub(double a,double b);
double mul(double a,double b);
double div(double a,double b);
int rem(int a , int b);
double addnumber(int c,int d);
double factor(int n);

main()
{
int a,b; /*用于做四则运算的两个数值的说明*/
double c,d; /*用来做累加函数的两个参数值的说明*/
double result; /*用于保存表单运算中函数的返回值*/
int choice; /*保存用户选择项目菜单项*/
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n");
printf("*############高级计算器############* \n");
printf("************************************ \n");
printf("* ①加法运算 * \n");
printf("* ②减法运算 * \n");
printf("* ③乘法运算 * \n");
printf("* ④除法运算 * \n");
printf("* ⑤取余运算 * \n");
printf("* ⑥累加运算 * \n");
printf("* ⑦阶乘运算 * \n");
printf("* 0结束运算 * \n");
printf("************************************ \n");
printf("************************************ \n");
while(1)
{
displaymenu();
printf("请选择你所进行运算项目的符号:");
scanf("%d",&choice);
switch(choice)
{

case 1: /*加法计算*/
printf("请输入两个数字:");
scanf("%if%if",&a,&b);
result=sum(a,b);
printf("%if+%if的计算结果是:%if\n",a,b,result);
break;
case 2: /*减法计算*/
printf("请输入两个数字:");
scanf("%if%if",&a,&b);
result=sub(a,b);
printf("%if-%if的计算结果是:%if\n",a,b,result);
break;
case 3: /*乘法计算*/
printf("请输入两个数字:");
scanf("%if%if",&a,&b);
result=mul(a,b);
printf("%if*%if的计算结果是:%if\n",a,b,result);
break;
case 4: /*除法计算*/
if(b==0) printf("错误,请重新输入!\n");
else printf("请输入两个数字:");
scanf("%if%if",&a,&b);
result=div(a,b);
printf("%if/%if的计算结果是:%if\n",a,b,result);
break;
case 5: /*取余计算*/
printf("请输入两个数字:");
scanf("%if%if",&a,&b);
result=rem(a,b);
printf("%if%%if的计算结果是:%if\n",a,b,result);
break;
case 6: /*累加计算*/
printf("请输入两个数字");
scanf("%d%d",&c,&d);
result=addnumber(c,d);
printf("%if/%if的计算结果是:%if\n",a,b,result);
break;

default:
printf("选择错误,程序结束\n");
}
}}
}
文件形式是.c 而且最好用 while、for 、switch 语句用来循环 ,累加就是 两个数 1 10 之间整数的和 550

好的,这个程序没有问题,你可以试一试看。还有1 10 的累加是55吧,呵呵。我的程序就是这么写的。而且这两个数没有先小后大的要求。我用的vc2008 这是.c程序没问题。

使用flag来控制循环,就好了。还有你的累加是不是将这两个数之间的整数累加起来,总之我这么写的,如果有其他要求可以再提。希望有帮助,记得采纳哦。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double sum(double a,double b){return a+b;};
double sub(double a,double b){return a-b;};
double mul(double a,double b){return a*b;};
double divi(double a,double b){return a/b;};
int rem(int a , int b){return a%b;};
int addnumber(int c,int d){
int e,sum=0;
if(c>d){
e=c,c=d,d=e;
};
for(e=c;e<=d;e++)
sum+=e;
return sum;
};
double factor(int n){
if (n==1)return 1;
return factor(n-1)*n;
};
void displaymenu(){
system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n");
printf("*############高级计算器############* \n");
printf("************************************ \n");
printf("* ①加法运算 * \n");
printf("* ②减法运算 * \n");
printf("* ③乘法运算 * \n");
printf("* ④除法运算 * \n");
printf("* ⑤取余运算 * \n");
printf("* ⑥累加运算 * \n");
printf("* ⑦阶乘运算 * \n");
printf("* 0结束运算 * \n");
printf("************************************ \n");
printf("************************************ \n");
}
void main()
{
int a,b,flag=1; /*用于做四则运算的两个数值的说明*/
double c,d; /*用来做累加函数的两个参数值的说明*/
double result; /*用于保存表单运算中函数的返回值*/
int choice; /*保存用户选择项目菜单项*/
while(flag)
{
displaymenu();
printf("请选择你所进行运算项目的符号:");
scanf("%d",&choice);
switch(choice)
{

case 1: /*加法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",&c,&d);
result=sum(c,d);
printf("%lf+%lf的计算结果是:%lf\n",c,d,result);
break;
case 2: /*减法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",&c,&d);
result=sub(c,d);
printf("%lf-%lf的计算结果是:%lf\n",c,d,result);
break;
case 3: /*乘法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",&c,&d);
result=mul(c,d);
printf("%lf*%lf的计算结果是:%lf\n",c,d,result);
break;
case 4: /*除法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",&c,&d);
if(d==0) {
printf("错误,请重新输入!\n");
scanf("%lf%lf",&c,&d);
}
result=divi(c,d);
printf("%lf/%lf的计算结果是:%lf\n",c,d,result);
break;
case 5: /*取余计算*/
printf("请输入两个数字:");
scanf("%d%d",&a,&b);
result=rem(a,b);
printf("%d除%d余的计算结果是:%lf\n",a,b,result);
break;
case 6: /*累加计算*/
printf("请输入两个数字");
scanf("%d%d",&a,&b);
result=addnumber(a,b);
printf("%d到%d的累加计算结果是:%lf\n",a,b,result);
break;
case 7:
printf("请输入数字");
scanf("%d",&a);
result=factor(a);
printf("%d的计算结果是:%lf\n",a,result);
break;
case 0:
flag=0;
printf("程序结束!\n");
break;
default:
printf("选择错误,重新选择\n");
break;
}
getchar();
getchar();
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-16
用while(1)循环来进行重复选择菜单动作,根据用户输入的choice变量的值,用switch(choice)语句根据具体的选项来执行对应的语句(注意:没个case的只值表示用户输入choice的值,而且每个case语句最后要用break语句退出switch语句,否则就会把其它的case情况也执行了)
第2个回答  2010-11-17
根据用户输入的choice变量的值,用switch(choice)语句根据具体的选项来执行对应的语句(注意:没个case的只值表示用户输入choice的值,而且每个case语句最后要用break语句退出switch语句,否则就会把其它的case情况也执行了)
第3个回答  2010-11-16
用while(1)循环来进行重复选择菜单动作,根据用户输入的choice变量的值,用switch(choice)语句根据具体的选项来执行对应的语句
第4个回答  2010-11-16
#include<stdio.h>
#include<windows.h>
#include<math.h>
double EPS=10E-6;
double sum(double a,double b)
{
return a+b;
}
double sub(double a,double b)
{
return a-b;
}
double mul(double a,double b)
{
return a*b;
}
double divv(double a,double b)
{
return a/b;
}
int rem(int a , int b)
{
return a%b;
}
int addnumber(int c,int d)
{
int sum=0;
for(int i=c;i<=d;i++)
{
sum+=i;
}
return sum;
}
int factor(int n)
{
int f=1;
for(int i=1;i<=n;i++)
{
f*=i;
}
return f;
}

void displaymenu()
{
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n");
printf("*############高级计算器############* \n");
printf("************************************ \n");
printf("* ①加法运算 * \n");
printf("* ②减法运算 * \n");
printf("* ③乘法运算 * \n");
printf("* ④除法运算 * \n");
printf("* ⑤取余运算 * \n");
printf("* ⑥累加运算 * \n");
printf("* ⑦阶乘运算 * \n");
printf("* ⊙结束运算 * \n");
printf("************************************ \n");
printf("************************************ \n");
}
void main()
{
int c,d; /*用于做四则运算的两个数值的说明*/
double a,b; /*用来做累加函数的两个参数值的说明*/
int intresult;
double result; /*用于保存表单运算中函数的返回值*/
int choice;
displaymenu();/*保存用户选择项目菜单项*/
while(1)
{
printf("请选择你所进行运算项目的符号:");
scanf("%d",&choice);
switch(choice)
{
case 1: /*加法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",&a,&b);
result=sum(a,b);
printf("%lf+%lf的计算结果是:%lf\n",a,b,result);
break;
case 2: /*减法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",&a,&b);
result=sub(a,b);
printf("%lf-%lf的计算结果是:%lf\n",a,b,result);
break;
case 3: /*乘法计算*/
printf("请输入两个数字:");
scanf("%lf%lf",&a,&b);
result=mul(a,b);
printf("%lf*%lf的计算结果是:%lf\n",a,b,result);
break;
case 4: /*除法计算*/
{
scanf("%lf%lf",&a,&b);
if(b-0.0<EPS) printf("数字错误\n");
else
{
printf("请输入两个数字:");
result=divv(a,b);
printf("%lf/%lf的计算结果是:%lf\n",a,b,result);
}
break;
}
case 5: /*取余计算*/
printf("请输入两个数字:");
scanf("%d%d",&c,&d);
result=rem(c,d);
printf("%d % %d的计算结果是:%d\n",c,d,result);
break;
case 6: /*累加计算*/
printf("请输入两个整数");
scanf("%d%d",&c,&d);
intresult=addnumber(c,d);
printf("%d-%d的累加计算结果是:%d\n",c,d,intresult);
break;
case 7: //阶乘计算
{
printf("请输入一个大于0小于10的整数字");
scanf("%d",&c);
if(c<0||c>10)
{
printf("请输入一个大于0小于10的整数字,数据错误。\n");
break;
}
intresult=factor(c);
printf("%d的阶乘计算结果是:%d\n",c,intresult);
break;
}
case 0:
printf("谢谢使用。欢迎下次再用。\n");
return ;
default:
printf("选择错误,程序结束\n");
break;
}

}
}本回答被提问者和网友采纳
相似回答