#include <stdio. h> #include <time.h> /** found***********/ #include <math. h> void main () int a,b; float f ; srand(time (0)) ; a=rand() 841+10; b=rand() 841+10; /********************found****************/ f=(a-b) 1 (a+b) *b/a; /********************found***************/ f-(int) (f*10000+0.5) /10000; 1/4I 4 ENK /********************found****************/ printf ("a-sd,b=sd, f=sdn",a,b,f); getchar () i
时间: 2023-07-18 15:46:45 浏览: 119
这段代码存在多处语法错误和逻辑错误,建议您仔细检查并修改后再运行。
以下是可能需要修改的地方:
1. 头文件名中的空格应该被移除,正确的写法为#include <stdio.h>和#include <math.h>。
2. main函数需要加上大括号{}。
3. srand函数的参数应该是一个无符号整数,而不是一个指针,可以使用time(NULL)来获取当前时间的秒数。
4. a和b的赋值语句中应该使用加号而不是减号。
5. f的计算公式存在多处错误,应该将1放在分子的括号外,保证先进行除法运算。同时,最后一行语句应该是f = f - (int)(f * 10000 + 0.5) / 10000.0;。
6. printf函数中的格式控制符应该与要输出的变量类型相匹配,正确的写法为printf("a=%d, b=%d, f=%f\n", a, b, f);。
7. getchar函数后应该加上return 0;,表示程序正常结束。
修改后的代码如下:
```c
#include <stdio.h>
#include <time.h>
#include <math.h>
int main()
{
int a, b;
float f;
srand(time(NULL));
a = rand() % 841 + 10;
b = rand() % 841 + 10;
f = 1.0 * (a + b) / a / b;
f = f - (int)(f * 10000 + 0.5) / 10000.0;
printf("a=%d, b=%d, f=%f\n", a, b, f);
getchar();
return 0;
}
```
阅读全文