这是我使用函数的简单兴趣代码: -
#include<stdio.h>
#include<conio.h>
void main()
{
int a,c;
float b,d;
printf("Enter principle value :");
scanf("%d", &a);
printf("Enter rate :");
scanf("%f", &b);
printf("Enter time:");
scanf("%d", &c);
d=si(a,c,b);
printf("The simple interest is %f", d);
getch();
}
float si(int a, int c, float b)
{
float f;
f=(p*t*r/100);
return(0);
}
因此,这会给出&#34;类型不匹配重新声明si&#34;作为来自浮动的错误。
答案 0 :(得分:2)
首先,这个片段
printf("Enter time:");
scanf("%d", &t);
由于你没有将t
声明为整数,所以不应该工作,所以只需在上面的行上声明t
就像这样。
int a, c, t;
您也没有在si
函数中声明任何变量。当您传递c
变量时,它永远不会被初始化。
什么有助于您的类型不匹配错误是si
函数的前向声明。
通过将行float si(int a, int c, float b);
添加到程序的顶部(在main之上),您可以让编译器知道函数si
的类型,以及期望的参数。
这是我尝试修复代码的最佳方法:
#include <stdio.h>
#include <conio.h>
float si(int a, int c, float b);
float si(int a, int c, float b){
float f;
f=(a*b*c/100);
return f;
}
void main(){
int a, c;
float b, d;
printf("Enter principle value :");
scanf("%d", &a);
printf("Enter rate :");
scanf("%f", &b);
printf("Enter time:");
scanf("%d", &c);
d = si(a,c,b);
printf("The simple interest is %f", d);
}
答案 1 :(得分:1)
致电时
d = si(a,c,b);
你的程序不知道该函数,因为它后面是在底部定义的。查找“前向声明”以解决此问题。另外,你使用变量't'但我看不到它的定义。