一道C语言作业题,让你编写随机生成10以内的整数,并且自己输入计算结果的程序,我编写了一些,求教!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一道C语言作业题,让你编写随机生成10以内的整数,并且自己输入计算结果的程序,我编写了一些,求教!!相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
int main()

int a,b,c;
while(1)

srand(time(NULL));
a=rand()%10;
b=rand()%10;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("a+b=");
scanf("%d",&c)
if(a+b=c)

printf("yes,you are right");

if else(c!=a+b)

printf("no,you are wrong");



return 0;


当你的输入相应的数值时候,就应该会判断对与错,可是我哪里错了,老是显示错误,有大神帮助我吗!

if(a+b=c)  改成if(a+b == c)

if else(c!=a+b)  改成else就行了。

#include <stdio.h>
//#include<stdlib.h>
#include<time.h> 
int main()

int a,b,c;
while(1)

srand(time(NULL));
a=rand()%10;
b=rand()%10;
printf("a=%d\\n",a);
printf("b=%d\\n",b);
printf("a+b=");
scanf("%d",&c);
if(a+b == c)

printf("yes,you are right!\\n");

else

   printf("no,you are wrong!\\n");



return 0;

参考技术A if(a+b==c)//=是赋值,==才是判等

 /*if */else//(c!=a+b)//直接else

追问

改完了还是不行。。我那个scanf后面加了个;号还是有一个错误

作业:随机四则运算

      这个作业难度还是比较低的。

      先从两个方面开始考虑:第一是生成整数(考虑到是小学的作业,整数设定在100以内)的四则运算,第二是生成真分数(考虑是小学的作业,真分数的分子和分母都只用一位数)的四则运算。

      生成整数运算很简单,用srand和rand生成两个数字,显示出来,并在系统内部计算,同时让小学生写出答案,最后将小学生的答案与正确答案相比,最后判定正确。加法和乘法就不用多说,减法的话,生成整数之后还要判定两个数的大小,以免相减之后出现负数;除法的答案,用商和余数的方法。

      生成分数运算,随机两个数,两个数组成一个分数,当然,要是真分数的话得判定分子与分母的大小,大的是分母。真分数的四则运算也就那样,其实最重要的还是内部的答案化简,利用辗转相除法把得到的分数两个数进行化简,最后才能和小学生给出的答案相比判定。

      主函数使用switch函数,利用随机数来随机产生八种算式。

      原代码如下:

====================================================================

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int shuzi() //随机100以内的数字
{
int a;

a=rand()%100;

return a;
}

int shuzi1() //随机10以内的数字
{
int a;

a=rand()%10;

return a;
}

int fenshuzi() //随机10以内不为0的数字
{
int a=11;

loop: a=rand()%10;

if(a==0)
goto loop;


return a;
}


int jiafa() //整数加法
{

int a,b;
a=shuzi();
b=shuzi();
printf("%d+%d=",a,b);
int c,d;
c=a+b;
scanf("%d",&d);
if(d==c)
printf("正确!\n");
else
printf("错误!\n");
return 0;
}


int jianfa() //整数减法
{

int a,b,k;
a=shuzi();
b=shuzi();
if(a<b)
{
k=a;
a=b;
b=k;
}
printf("%d-%d=",a,b);
int c,d;
c=a-b;
scanf("%d",&d);
if(d==c)
printf("正确!\n");
else
printf("错误!\n");
return 0;
}

int chufa() //整数除法
{

int a,b;
a=shuzi();
b=shuzi();
printf("%d÷%d=",a,b);
int c,d,f,g;
c=a/b;
f=a%b;
scanf("%d",&d);
printf("余:");
scanf("%d",&g);
if(d==c&g==f)
printf("正确!\n");
else
printf("错误!\n");
return 0;

}

int chengfa() //整数乘法
{
int a,b;
a=shuzi();
b=shuzi();
printf("%dx%d=",a,b);
int c,d;
c=a*b;
scanf("%d",&d);
if(d==c)
printf("正确!\n");
else
printf("错误!\n");
return 0;
}

int gcd(int n,int m) //分数化简
{
int temp,r;
if(n<m)
{
temp=n;
n=m;
m=temp;
}
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
return n;
}

int fenshujiafa() //分数加法
{
int a,b,c,d,i,j;
a=fenshuzi();
b=fenshuzi();
if(a>b)
{
i=a;
a=b;
b=i;
}


c=fenshuzi();
d=fenshuzi();
if(c>d)
{
i=c;
c=d;
d=i;
}

printf("%d/%d + %d/%d =\n ",a,b,c,d);

a=a*d;
c=c*b;
b=b*d;
d=b;

int fenzi,fenmu,fenzi1,fenmu1;
fenzi=a+c;
fenmu=b;

fenzi1=fenzi;
fenmu1=fenmu;

 

fenzi=fenzi1/gcd(fenzi1,fenmu1);
fenmu=fenmu1/gcd(fenzi1,fenmu1);

 

scanf("%d",&i);
printf("---\n ");
scanf("%d",&j);

 

if((i==fenzi)&(j==fenmu))
printf("正确!");
else
printf("错误!");

return 0;
}

int fenshujianfa() //分数减法
{
int a,b,c,d,i,j;
a=fenshuzi();
b=fenshuzi();
if(a>b)
{
i=a;
a=b;
b=i;
}


c=fenshuzi();
d=fenshuzi();
if(c>d)
{
i=c;
c=d;
d=i;
}

float god,pig,god1,pig1;
god=a;
pig=b;
god1=c;
pig1=d;
god=god/pig;
god1=god1/pig1;
if(god<god1)
{
i=a;
a=c;
c=i;
i=b;
b=d;
d=i;
}

printf("%d/%d - %d/%d =\n ",a,b,c,d);

a=a*d;
c=c*b;
b=b*d;
d=b;

int fenzi,fenmu,fenzi1,fenmu1;
fenzi=a-c;
fenmu=b;

fenzi1=fenzi;
fenmu1=fenmu;

 

fenzi=fenzi1/gcd(fenzi1,fenmu1);
fenmu=fenmu1/gcd(fenzi1,fenmu1);

scanf("%d",&i);
printf("---\n ");
scanf("%d",&j);

 

if((i==fenzi)&(j==fenmu))
printf("正确!");
else
printf("错误!");

return 0;

}

int fenshuchufa() //分数除法
{
int a,b,c,d,i,j;
a=fenshuzi();
b=fenshuzi();
if(a>b)
{
i=a;
a=b;
b=i;
}


c=fenshuzi();
d=fenshuzi();
if(c>d)
{
i=c;
c=d;
d=i;
}

printf("%d/%d ÷ %d/%d =\n ",a,b,c,d);

i=c;
c=d;
d=i;

int fenzi,fenmu,fenzi1,fenmu1;
fenzi=a*c;
fenmu=b*d;

fenzi1=fenzi;
fenmu1=fenmu;

 

fenzi=fenzi1/gcd(fenzi1,fenmu1);
fenmu=fenmu1/gcd(fenzi1,fenmu1);

 

scanf("%d",&i);
printf("---\n ");
scanf("%d",&j);

 

if((i==fenzi)&(j==fenmu))
printf("正确!");
else
printf("错误!");

return 0;
}

int fenshuchengfa() //分数乘法
{
int a,b,c,d,i,j;
a=fenshuzi();
b=fenshuzi();
if(a>b)
{
i=a;
a=b;
b=i;
}


c=fenshuzi();
d=fenshuzi();
if(c>d)
{
i=c;
c=d;
d=i;
}

printf("%d/%d X %d/%d =\n ",a,b,c,d);


int fenzi,fenmu,fenzi1,fenmu1;
fenzi=a*c;
fenmu=b*d;

fenzi1=fenzi;
fenmu1=fenmu;

 

fenzi=fenzi1/gcd(fenzi1,fenmu1);
fenmu=fenmu1/gcd(fenzi1,fenmu1);


scanf("%d",&i);
printf("---\n ");
scanf("%d",&j);

 

if((i==fenzi)&(j==fenmu))
printf("正确!");
else
printf("错误!");

return 0;
}

 

int main()
{

srand(time(0));
int i;
i=shuzi1();
i=i%8;


switch (i)
{
case 0: {jiafa(); break;}
case 1: {jianfa(); break;}
case 2: {chufa(); break;}
case 3: {chengfa(); break;}
case 4: {fenshujiafa(); break;}
case 5: {fenshujianfa(); break;}
case 6: {fenshuchufa(); break;}
case 7: {fenshuchengfa(); break;}
default : printf("error \n");
}


return 0;
}

 

========================================================================

因为不是很熟练,所以代码难免冗长,排版不是很干净

以上是关于一道C语言作业题,让你编写随机生成10以内的整数,并且自己输入计算结果的程序,我编写了一些,求教!!的主要内容,如果未能解决你的问题,请参考以下文章

python两个10以内的随机整数以第一个随机整数为半径第二个随机整数为高,计算并输出圆锥体的体积

Java分别采用随机生成或从键盘输入的方式,产生10个10以内的整数?

随机生成10个不重复的50以内的整数

用C语言编写一道程序计算100以内偶数的和

python两个10以内的随机整数以第一个随机整数为半径第二个随机整数为高,计算并输出圆锥体的体积

编程实现:由系统生成一个10以内的随机整数,用户从键盘上输入一个10以内的整数,如果两者相等输出“OK”