c语言冒泡排序出现 function does not take 1 parameters ,哪儿错了
发布网友
发布时间:2024-10-05 09:26
我来回答
共3个回答
热心网友
时间:2024-10-07 07:22
你的传参有问题。你定义的函数是int sort(int a[10],int i,int j,int t)
但是你调用时再只给一个参数。sort(a[i]);
这就不对了。应该传4个参数过去。
热心网友
时间:2024-10-07 07:20
问题较多,看注释。
#include<stdio.h>
void sort(int a[10]) //i,j,t都是子函数中才需要的,不必定义成形参,没有返回值,不要定义成int
{
int i,j,t; //
/***为什么重复输入?
printf("Input %d numbers:\n",10);
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
****/
for(i=0;i<10;i++)
for(j=0;j<10-i-1;j++) //冒泡排序正确循环格式
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t; //注意是j+1不是j+i
}
/***重复输出
printf("the sorted numbers: \n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
**/
}
void main()
{
int a[10],i;
for(i=0;i<10;i++)//输入
scanf("%d",&a[i]);
sort(a); //函数调用,传数组名就可以了
for(i=0;i<10;i++)//输出
printf("%d ",a[i]); //输出不加&
printf("\n");
}
热心网友
时间:2024-10-07 07:23
函数定义时int sort(int a[10],int i,int j,int t),4个参数
调用是sort(a[i]);只调用一个参数
是这个问题么