求C语言大神!!关于四则运算的。。

下面是个C语言源程序,请你根据源程序写个四则运算的程序。。
#include "iostream.h"#include "stdlib.h"void main(){char c;int J,K;int a,b,x,i,Y;float n=0.0,m=0.0;printf("\n 四则运算练习\n"); printf("输入范围(J到K):\n");printf("最小值J:");scanf(“%d”,&J);printf("最大值K:");scanf(“%d”,&K);printf("请输入运算次数:\n");scanf(“%d”,&Y);while (1){printf("1-加法运算\n");printf("2-减法运算\n");printf("3-乘法运算\n");printf("4-除法运算\n");printf("0-退出\n");printf("请选择:");scanf(“%d”,&c);if(c=='0') break;if(c<'Y'){n=0;m=0;switch (c){ case '1': for(i=0;i<=(Y-1);i++) { a=rand (); a=int((a/32767.0)*(K-J)+J); b=rand (); b=int((b/32767.0)*(K-J)+J); cout<<a<<"+"<<b<<"="; cin>>x; if (x==(a+b)) { printf("正确\n");n++; } else { printf("错误\n");m++; printf("正确的结果为:%d+%d=%d\n",a,b,a+b); } } printf("正确率:%d\n",(n/Y)*100; printf("错误率:%d\n",(m/Y)*100);break; case '2': for(i=0;i<=(Y-1);i++) { a=rand (); a=int((a/32767.0)*(K-J)+J); b=rand (); b=int((b/32767.0)*(K-J)+J); printf(“%d-%d=”,a,b); sacnf(“%d”,&x); if (x==(a-b)){printf("正确\n");n++;} else{printf("错误\n");m++; printf("正确的结果为:%d-%d=%d",a,b,a-b);} } printf("正确率:%d\n",(n/Y)*100; printf("错误率:%d\n",(m/Y)*100); break; case '3': for(i=0;i<=(Y-1);i++) { a=rand (); a=int((a/32767.0)*(K-J)+J); b=rand (); b=int((b/32767.0)*(K-J)+J); while(b==0) b=int(J+(rand()/32767.0)*(K-J)); printf(“%d*%d=”,a,b); scanf(“%d”,&x);if (x==(a*b)){printf("正确\n");n++;} else{printf("错误\n");m++; printf("正确的结果为:%d*%d=%d",a,b,a*b);} } printf("正确率:%d\n",(n/Y)*100; printf("错误率:%d\n",(m/Y)*100); break; case '4': for(i=0;i<=(Y-1);i++) { a=rand (); a=int((a/32767.0)*(K-J)+J); b=rand (); b=int((b/32767.0)*(K-J)+J); printf(“%d/%d=”,a,b); scanf(“%d”,&x);if (x==(a/b)){printf("正确\n");n++;} else{printf("错误\n");m++; printf("正确的结果为:%d/%d=%d",a,b,a/b);} } printf("正确率:%d\n",(n/Y)*100; printf("错误率:%d\n",(m/Y)*100); break;}}else printf("输入的数据不正确\n");}}

#include "stdio.h"
#include "stdlib.h"
void main()
{
char c;int J,K;
int a,b,x,i,Y;
float n=0.0,m=0.0;
printf("\n 四则运算练习\n");
printf("输入范围(J到K):\n");
printf("最小值J:");
scanf("%d",&J);
printf("最大值K:");
scanf("%d",&K);
printf("请输入运算次数:\n");
scanf("%d",&Y);
while (1)
{
printf("1-加法运算\n");
printf("2-减法运算\n");
printf("3-乘法运算\n");
printf("4-除法运算\n");
printf("0-退出\n");
printf("请选择:");
scanf("%d",&c);
if(c=='0') break;
if(c<'Y')
{
n=0;
m=0;
switch (c)
{
case '1':
for(i=0;i<=(Y-1);i++)
{
a=rand ();
a=(int)((a/32767.0)*(K-J)+J);
b=rand ();
b=(int)((b/32767.0)*(K-J)+J);
// cout<<a<<"+"<<b<<"=";
// cin>>x;
printf("%d+%d=",a,b);
scanf("%d",&x);
if (x==(a+b))
{
printf("正确\n");n++;
}
else
{
printf("错误\n");
m++;
printf("正确的结果为:%d+%d=%d\n",a,b,a+b);
}
}
printf("正确率:%d\n",(n/Y)*100);
printf("错误率:%d\n",(m/Y)*100);
break;
case '2':
for(i=0;i<=(Y-1);i++)
{
a=rand ();
a=(int)((a/32767.0)*(K-J)+J);
b=rand ();
b=(int)((b/32767.0)*(K-J)+J);
printf("%d-%d=",a,b);
scanf("%d",&x);
if (x==(a-b))
{
printf("正确\n");
n++;
}
else
{
printf("错误\n");
m++;
printf("正确的结果为:%d-%d=%d",a,b,a-b);
}
}
printf("正确率:%d\n",(n/Y)*100);
printf("错误率:%d\n",(m/Y)*100);
break;
case '3':
for(i=0;i<=(Y-1);i++)
{
a=rand ();
a=(int)((a/32767.0)*(K-J)+J);
b=rand ();
b=(int)((b/32767.0)*(K-J)+J);
while(b==0)
b=(int)(J+(rand()/32767.0)*(K-J));
printf("%d*%d=",a,b);
scanf("%d",&x);
if (x==(a*b))
{
printf("正确\n");
n++;
}
else
{
printf("错误\n");
m++;
printf("正确的结果为:%d*%d=%d",a,b,a*b);
}
}
printf("正确率:%d\n",(n/Y)*100);
printf("错误率:%d\n",(m/Y)*100);
break;
case '4':
for(i=0;i<=(Y-1);i++)
{
a=rand ();
a=(int)((a/32767.0)*(K-J)+J);
b=rand ();
b=(int)((b/32767.0)*(K-J)+J);
printf("%d/%d=",a,b);
scanf("%d",&x);
if (x==(a/b))
{
printf("正确\n");
n++;
}
else
{
printf("错误\n");
m++;
printf("正确的结果为:%d/%d=%d",a,b,a/b);
}
}
printf("正确率:%d\n",(n/Y)*100);
printf("错误率:%d\n",(m/Y)*100);
break;
}
}
else
printf("输入的数据不正确\n");
}
}
跑是跑起来了,运行结果对不对,自己判断,初学者不下点功夫是不行的。
第一个问题,打代码的时候注意输入法
第二个问题,有个scanf打错。
第三个问题,强制转换好好看看书
第四个问题,虽然说C++C语言是相通的,但是不要在不得以的情况下用在一起,因为你还不了解库。
最后一个问题,注意格式,很多输出漏了括号。追问

我复制的是老师给我们的源代码,我还是菜鸟,正在努力学习C语言中。。。还是要谢谢你

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-25
#include <iostream.h>
#include<stdio.h>
#include <stdlib.h>
void main()
{
char c;
int J,K;int a,b,x,i,Y;float n=0.0,m=0.0;
printf("\n 四则运算练习\n");
printf("输入范围(J到K):\n");
printf("最小值J:");scanf("%d",&J);
printf("最大值K:");scanf("%d",&K);printf("请输入运算次数:\n");scanf("%d",&Y);
while (1)
{
printf("1-加法运算\n");
printf("2-减法运算\n");
printf("3-乘法运算\n");
printf("4-除法运算\n");
printf("0-退出\n");
printf("请选择:");scanf("%d",&c);if(c=='0') break;
if(c<'Y')
{
n=0;m=0;
switch (c)
{
case '1':
for(i=0;i<=(Y-1);i++)
{
a=rand ();
a=int((a/32767.0)*(K-J)+J);b=rand ();
b=int((b/32767.0)*(K-J)+J);
cout<<a<<"+"<<b<<"=";
cin>>x;
if (x==(a+b))
{
printf("正确\n");n++;
}
else
{
printf("错误\n");m++;
printf("正确的结果为:%d+%d=%d\n",a,b,a+b);
}
}
printf("正确率:%d\n",(n/Y)*100);
printf("错误率:%d\n",(m/Y)*100);
break;
case '2':
for(i=0;i<=(Y-1);i++)
{
a=rand ();
a=int((a/32767.0)*(K-J)+J);
b=rand ();
b=int((b/32767.0)*(K-J)+J);
printf("%d-%d=",a,b);
scanf("%d",&x);
if (x==(a-b))
{
printf("正确\n");n++;
}
else
{
printf("错误\n");m++; printf("正确的结果为:%d-%d=%d",a,b,a-b);
}
}
printf("正确率:%d\n",(n/Y)*100);
printf("错误率:%d\n",(m/Y)*100);
break;
case '3':
for(i=0;i<=(Y-1);i++)
{
a=rand ();
a=int((a/32767.0)*(K-J)+J);
b=rand ();
b=int((b/32767.0)*(K-J)+J);
while(b==0)
b=int(J+(rand()/32767.0)*(K-J));
printf("%d*%d=",a,b);
scanf("%d",&x);
if (x==(a*b))
{
printf("正确\n");n++;
}
else
{
printf("错误\n");
m++;
printf("正确的结果为:%d*%d=%d",a,b,a*b);
}
}
printf("正确率:%d\n",(n/Y)*100);
printf("错误率:%d\n",(m/Y)*100);
break;
case '4':
for(i=0;i<=(Y-1);i++)
{
a=rand ();
a=int((a/32767.0)*(K-J)+J);
b=rand ();
b=int((b/32767.0)*(K-J)+J);
printf("%d/%d=",a,b);
scanf("%d",&x);
if (x==(a/b))
{
printf("正确\n");
n++;
}
else
{
printf("错误\n");
m++;
printf("正确的结果为:%d/%d=%d",a,b,a/b);
}
}
printf("正确率:%d\n",(n/Y)*100);
printf("错误率:%d\n",(m/Y)*100);
break;
}
}
else printf("输入的数据不正确\n");
}
}
感觉错误好多。不知道这个程序到底是什么意思追问

没有问题啊,可以运行的。他的意思就是先输入两个数,然后选择运算法则,最后输入运算次数,之后它会在这两个数之间随机生成两个数,然后根据你选择的运算法则,让你计算,输入运算结果,最后显示正确率。。你能不能帮我把他改下,能运行就行了。。。。

第2个回答  2012-12-24
摘录你的程序段:
...................
a=rand ();
a=int((a/32767.0)*(K-J)+J);
b=rand ();
b=int((b/32767.0)*(K-J)+J);
cout<<a<<"+"<<b<<"=";

.................
这只能在16位机上运行。何不采用如下形式:
a=random(abs(k-j))+j;
b=raddom(abs(k-j))+j;
cout<<a<<"+"<<b<<"=";
而且,你的程序运行后,每次运行,其随机数出现的序列都是一样的。
所以,在此段前应添加一个初始化函数:randomize();
第3个回答  2012-12-24
先不看你这个问题,先说说你这个问题的排版!
你认为看到这样的排版,会有人回答吗?追问

好吧。。没想到是这样子的,,要不我发你邮箱吧。。

追答

先别急给我程序,你说你是什么问题

追问

我刚学的C语言,什么题目都没做过,老师就布置了这个作业,发了个源程序给我们,他的意思就是在这个源程序的范围内,把它写成一个新的可运行的程序,他还说改的越没样子,只要能运行分数越高。。

本回答被提问者采纳
第4个回答  2012-12-24
哎,这让我怎么给你回答啊?伤心死啦,走啦