帮我看看这个c语言源代码有什么问题?

来源:百度知道 编辑:UC知道 时间:2024/06/27 03:23:50
我找了1个多小时都找不出来
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void main()
{
int in,x,n,h=0,sum=0,m=1;
scanf("%d",&n); /*根据输入数字出多少题*/
do
{
int a,b,c;
float cfd;

int srand(time(NULL));
cfd=(float)(a/b);
do
{
a=rand()%1000+1;
b=rand()%1000+1;
switch(rand()%5){
case 1:printf("%d+%d=",a,b);
b=a+b;
break;
case 2:while (a-b<0) {
a=rand()%1000+1;
b=rand()%1000+1;
}
printf("%d-%d=",a,b);
b=a-b;
break;
case 3:while (a*b>1000){
a=rand()%1000+1;
b=rand()%1000+1;
}
printf("%d*%d=",a,b);
b=a*b;
break;
case 4:while (a<b||cfd*b!=a){
a=rand()%1000+1;
b=rand()%1000+1;
cfd=(float)a/(float)b;
}
printf("%d/%d=",a,b);
b=a/b;
break;
}

大概计算功能有了,主要是除法那里做了修改,没看出来除法要做什么控制,我给改成了只出整除的计算题。

如需其他要求接着继续修改添加就可以了。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void main()
{
int x=0,n,h=0,sum=0,m=1;
int a,b,c;
int s;

scanf("%d",&n); /*根据输入数字出多少题*/

s=rand(time(NULL));
do
{
a=rand()%1000+1; //+1为了控制参与计算的数不能是0
b=rand()%1000+1;
switch(rand()%4) //对4取余的结果只能是(0,1,2,3)中的一个
{
case 0:
while (a<b || a%b != 0)//控制参与计算的数必须是a可以整除b的
{
a=rand()%1000+1;
b=rand()%1000+1;
}
printf("%d/%d=",a,b);
b=a/b;
break;
case 1:
printf("%d+%d=",a,b);
b=a+b;
break;
case 2:
while ((a-b)<0)
{
a=rand()%1000+1;
b=rand()%1000+1;
}
printf("%d-%d=",a,b);
b=a-b;