c语言函数调用问题
- 提问者网友:兔牙战士
- 2021-05-04 06:39
void main()
{
int min(int x,int y);
int a,b;
scanf("%d%d",&a,&b);
min(a,b);
printf("%d%d",a,b);
}
int min(int x,int y)
{
int t;
if(x>y)
{
t=x;x=y;y=t;
}
return;
}
这个程序哪里有问题?
- 五星知识达人网友:大漠
- 2021-05-04 07:12
#include<stdio.h>
void main()
{
void min(int* x,int* y);
int a,b;
scanf("%d%d",&a,&b);
min(&a,&b);
printf("%d%d",a,b);
}
void min(int* x,int* y)
{
int t;
if(*x>*y)
{
t=*x;*x=*y;*y=t;
}
}
要是想不用指针的话恐怕就要用数组了,下面是用数组写的代码,经测试确实好用
#include<stdio.h>
#include<stdlib.h>
void sort( int a[] )
{
int temp;
if( a[0] > a[1] )
{
temp = a[0];
a[0] = a[1];
a[1] = temp;
}
}
int main(void)
{
int a[2];
scanf( "%d%d" , &a[0] , &a[1] );
sort( a );
printf( "%d %d\n" , a[0] , a[1] );
system( "pause" );
return 0;
}
- 1楼网友:未来江山和你
- 2021-05-04 11:37
- 2楼网友:愁杀梦里人
- 2021-05-04 10:39
程序return 的时候没有return具体值 只有一个空return就加了封号了哈
由于是返回个int ,则你要返回个整形哈!
这里你什么都没写。所以报错!
还有你这样的函数没有实现真正的交换功能哈!
C语言分两种传递方式
1.值传递,不会改变原函数的变量 2.地址传递!常用与指针,可以改变原函数的值哈!
至于你这样做的话就是值传递哈!
会原样打印出你输入的值哈!
- 3楼网友:迷人又混蛋
- 2021-05-04 10:04
scanf("%d%d",&a,&b);
少了“,”号啊。
scanf("%d,%d",&a,&b);
就好了。
- 4楼网友:山君与见山
- 2021-05-04 09:30
- 5楼网友:鸠书
- 2021-05-04 08:48
不用指针。
#include<stdio.h> void main() { int min(int &x,int &y); int a,b; scanf("%d%d",&a,&b); min(a,b); printf("%d%d",a,b); } int min(int &x,int &y) { int t; if(x>y) { t=x;x=y;y=t; } return 0; }