一个初级函数,想知道怎么用.
在input()中输入a,b的值.回到主函数中打印.就这样.我的好像很有问题......谢谢指教.
#include<stdio.h>
void input(int a,int b);
int main()
{
int a,b;
input(a,b);
printf("%d,%d",a,b);
system("pause");
return 0;
}
void input(int a,int b)
{
scanf("%d",&a);
scanf("%d",&b);
}
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void input(int &a,int &b);
int main()
{
int a,b;
input(a,b);
printf("%d,%d",a,b);
return 0;
}
void input(int &a,int &b)
{
scanf("%d",&a);
scanf("%d",&b);
}
----------------解决方案--------------------------------------------------------
sunkaidong,好像运行通不过...DEV C++
说a没有定义.你再看看好吧.谢谢了
----------------解决方案--------------------------------------------------------
vc++6.0运行通过了...
----------------解决方案--------------------------------------------------------
据我所知,函数的值传递具有单向性,形参无法把值传给形参。
你们用的什么编译器我不知道,总之LZ的无法正确得到值,是随机的。LS的根本定义错误,无法编译通过,因为int &a根本无法通过。
期待有更明确更详细的解释。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void input(int * a, int * b);
int main()
{
int a, b;
input(&a, &b);
printf("%d,%d",a,b);
return 0;
}
void input(int * a, int * b)
{
scanf("%d", a);
scanf("%d", b);
}
// input(int &a, int &b) // 在 C中没有引用。
[[it] 本帖最后由 cosdos 于 2008-2-18 20:41 编辑 [/it]]
----------------解决方案--------------------------------------------------------
LS正解,用指针才是硬道理。
----------------解决方案--------------------------------------------------------
刚刚装上VC ++
可以通过,且正确.谢谢了
能不能再给说说int &a?
定义一个整形的地址变量?然后就可以函数中用scanf();了?
还是...
----------------解决方案--------------------------------------------------------
不好意思,我用的是c++里面的引用调用.....
----------------解决方案--------------------------------------------------------
看来是学无止境啊,C++也得尽快学了。
----------------解决方案--------------------------------------------------------