新手提问:函数调用时出错

pengpeng5047 2008-04-13 03:56:37
大家看看我写的这个程序,我想通过函数调用来进行两个复数的加减乘除运算,我是新手,对函数调用还不太熟悉,请帮我分析一下是哪里的错误,该怎样解决,最好能谈谈函数调用方面的知识,程序是这样的:
#include<stdio.h>
int a1,a2,a3,b1,b2,b3,i;
void f1(int a1,int b1,int a2,int b2)
{a3=a1+a2;b3=b1+b2;
printf("a1+b1*i+a2+b2*i=%d+%d*i",a3,b3);}
void f2(int a1,int b1,int a2,int b2)
{a3=a1-a2;b3=b1-b2;
printf("a1+b1*i-a2+b2*i=%d+%d*i",a3,b3);}
void f3(int a1,int b1,int a2,int b2)
{a3=a1*a2-b1*b2;b3=a1*b2+a2*b1;
printf("(a1+b1*i)*(a2+b2*i)=%d+%d*i",a3,b3);}
void f4(int a1,int b1,int a2,int b2)
{a3=(a1*a2+b1*b2)/(a2*a2+b2*b2);
b3=(a2*b1-a1*b2)/(a2*a2+b2*b2);
printf("(a1+b1*i)/(a2+b2*i)=%d+%d*i",a3,b3);}
void main()
{
printf("please input a1,b1,a2,b2:");
scanf("%d%d%d%d",&a1,&b1,&a2,&b2);
int f1(int a1,int b1,int a2,int b2);
int f2(int a1,int b1,int a2,int b2);
int f3(int a1,int b1,int a2,int b2);
int f4(int a1,int b1,int a2,int b2);
}
错误报告是这样的:
: error C2556: 'int __cdecl f1(int,int,int,int)' : overloaded function differs only by return type from 'void __cdecl f1(int,int,int,int)'
D:\程序练习\复数.cpp(3) : see declaration of 'f1'
D:\程序练习\复数.cpp(20) : error C2371: 'f1' : redefinition; different basic types
D:\程序练习\复数.cpp(3) : see declaration of 'f1'……
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovelyday 2008-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jieao111 的回复:]
main里的int全部去掉
[/Quote]
正解,调用时不写返回值类型的,参数类型也不用写
jiuchang 2008-04-13
  • 打赏
  • 举报
回复
调用函数的时候不需要写函数的返回值类型
lxjlan 2008-04-13
  • 打赏
  • 举报
回复
void f1(int a1,int b1,int a2,int b2)

int f1(int a1,int b1,int a2,int b2);


c_spark 2008-04-13
  • 打赏
  • 举报
回复
不知道你程序的意思,不过对于这样的程序,谁见了也晕啊
我帮你排了版,在函数调用时,直接使用f(a,b,c,d)
不用写返回类型,参数类型,这些是在声明的时候用的
#include <stdio.h> 
int a1,a2,a3,b1,b2,b3,i;
void f1(int a1,int b1,int a2,int b2)
{
a3=a1+a2;b3=b1+b2;
printf("a1+b1*i+a2+b2*i=%d+%d*i\n",a3,b3);
}
void f2(int a1,int b1,int a2,int b2)
{
a3=a1-a2;b3=b1-b2;
printf("a1+b1*i-a2+b2*i=%d+%d*i\n",a3,b3);
}
void f3(int a1,int b1,int a2,int b2)
{
a3=a1*a2-b1*b2;b3=a1*b2+a2*b1;
printf("(a1+b1*i)*(a2+b2*i)=%d+%d*i\n",a3,b3);
}
void f4(int a1,int b1,int a2,int b2)
{
a3=(a1*a2+b1*b2)/(a2*a2+b2*b2);
b3=(a2*b1-a1*b2)/(a2*a2+b2*b2);
printf("(a1+b1*i)/(a2+b2*i)=%d+%d*i\n",a3,b3);
}
void main()
{
printf("please input a1,b1,a2,b2:");
scanf("%d%d%d%d",&a1,&b1,&a2,&b2);
f1(a1,b1,a2,b2);
f2(a1,b1,a2,b2);
f3(a1,b1,a2,b2);
f4(a1,b1,a2,b2);
}
jieao111 2008-04-13
  • 打赏
  • 举报
回复
main里的int全部去掉

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧