为什么这段代码无法调用子函数void sum(float a,float b) { float sum; sum=a+b; printf(“%d+%d=%d”,a,b,sum); } void sub(float a,float b ) { float sub; sub=a-b; printf(“%d+%d=%d”,a,b,sub); } void mulit (float a,float b ) { float mulit ; sub=a-b; printf(“%d+%d=%d”,a,b,mulit ); } void divide(float a,float b ) { float divide ; sub=a-b; printf(“%d+%d=%d”,a,b,divide); } int main() { int i; float num1,num2; printf(“四则计算器\n”); printf(“*******************\n”); printf(“1.+. 2.-”\n); printf (“请选择你想进行的运算\n”); scanf(“%d”,&i); printf(“输入你想计算的数字\n”); printf(“第一个数字: ” ); scanf(“%lf”,&num1); printf (“第二个数字:” ); scanf(“%lf”,&num2); if(i==1)sum(num1,num2); if(i==2)sub(num1,num2); if(i==3)mulit(num1,num2); if(i==4)divide(num1,num2); return 0; }
时间: 2024-01-24 19:01:39 浏览: 32
这段代码无法调用子函数的原因可能是因为函数定义中的参数类型与实际参数类型不匹配。在函数定义中,参数类型应该为 float,而在函数调用时却使用了 %d 进行格式化输出,这会导致编译错误。应该将 printf 中的 %d 改为 %f,即可正确输出结果。另外,在运算函数中的变量名与函数名不匹配也会导致错误,需要将变量名改为与函数名相同的名称。修复这些问题之后,代码应该可以正确调用子函数了。
相关问题
c语句viod add(float a,float b)为什么是错的?
这是因为在C语言中,void add(float a, float b)声明的是一个不返回任何值(即void)的函数,但它并没有执行任何操作。函数声明本身是没有问题的,但它需要包含一些代码来执行添加操作并返回结果。应该像这样编写该函数:
```c
void add(float a, float b) {
float result = a + b;
printf("The sum is: %f", result);
}
```
这个函数将打印出两个浮点数的和。如果需要将和返回到调用该函数的地方,则可以将返回类型更改为float,并添加一个返回语句。
#include <stdio.h> average( ) {int j; float aver,sum; sum=0; for(j=0; ;j++) sum=sum+a[j]; aver= sum/n; ; //返回结果 } #define N 10 int main(void) {float x[N],pj; //变量pj储存N个数的平均值 int i; for(i=0;i<N;i++) //输入N个数 scanf("%f",&x[i]); ; //调用函数计算平均值 printf("%.3f\n",pj); }
这段代码存在一些问题,例如函数average()没有定义形参n和a,也没有给出循环的结束条件,导致程序会一直计算sum直到出现不可预测的结果。此外,在main函数中,变量pj未被初始化,也没有调用average()函数来计算平均值。建议修改代码如下:
```
#include <stdio.h>
float average(float a[], int n) {
int j;
float aver = 0, sum = 0;
for(j = 0; j < n; j++) {
sum += a[j];
}
aver = sum / n;
return aver;
}
#define N 10
int main(void) {
float x[N], pj;
int i;
for(i = 0; i < N; i++) {
scanf("%f", &x[i]);
}
pj = average(x, N);
printf("%.3f\n", pj);
return 0;
}
```
修改后的代码中,average()函数加入了形参a和n,循环的结束条件也被明确指定为n。在main函数中,调用average()函数并将返回值赋给pj,最后输出平均值。
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)