使用 2 函数进行冒泡排序排序
sorting with bubble sort using 2 function
起初我使用冒泡排序对一些 numbers.It worked.And 进行排序,然后我再次尝试使用具有相同 logic.but 的 2 个函数的冒泡排序进行排序,但不是 working.I 我是 2/3 的新手 function.So 谁能帮我找出我逻辑中的问题?
#include<stdio.h>
main()
{
int i,j;
float num[5], c;
for(i=0;i<5;i++)
{
scanf("%f",&num[i]);
}
for(j=0;j<4;j++)
{
for(i=0;i<5;i++)
{
if(num[i]<num[i+1])
{
c=num[i];
num[i]=num[i+1];
num[i+1]=c;
}
}
}
for(i=0;i<5;i++)
{
printf("%.2f\n",num[i]);
}
}
#include<stdio.h>
void sort(int a[]);
void main()
{
int i;
double a[3], A, B, C;
for(i=0;i<3;i++)
{
scanf("%lf",&a[i]);
}
sort(a);
printf("In The Function\n");
for(i=0;i<3;i++)
{
printf("%.2lf\n",a[i]);
}
return;
}
void sort(int a[])
{
int i, n;
double temp;
for(n=0;n<2;n++)
{
for(i=0;i<3;i++)
{
if(a[i]<a[i+1])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
}
return;
}
不要忽略警告。
warning: passing argument 1 of ‘sort’ from incompatible pointer type [enabled by default]
sort(a);
^
sort.c:2:6: note: expected ‘int *’ but argument is of type ‘double *’
void sort(int a[]);
^
您已将 a
声明为 double
,但您的 function
收到 a
作为 int
。
改成如下。
void sort(double a[]);
你通过了双倍
double a;
sort(a);
主函数中的值,但在函数声明部分你的数据类型是整数
void sort(int a[])
更正为
void sort(double a[])
起初我使用冒泡排序对一些 numbers.It worked.And 进行排序,然后我再次尝试使用具有相同 logic.but 的 2 个函数的冒泡排序进行排序,但不是 working.I 我是 2/3 的新手 function.So 谁能帮我找出我逻辑中的问题?
#include<stdio.h>
main()
{
int i,j;
float num[5], c;
for(i=0;i<5;i++)
{
scanf("%f",&num[i]);
}
for(j=0;j<4;j++)
{
for(i=0;i<5;i++)
{
if(num[i]<num[i+1])
{
c=num[i];
num[i]=num[i+1];
num[i+1]=c;
}
}
}
for(i=0;i<5;i++)
{
printf("%.2f\n",num[i]);
}
}
#include<stdio.h>
void sort(int a[]);
void main()
{
int i;
double a[3], A, B, C;
for(i=0;i<3;i++)
{
scanf("%lf",&a[i]);
}
sort(a);
printf("In The Function\n");
for(i=0;i<3;i++)
{
printf("%.2lf\n",a[i]);
}
return;
}
void sort(int a[])
{
int i, n;
double temp;
for(n=0;n<2;n++)
{
for(i=0;i<3;i++)
{
if(a[i]<a[i+1])
{
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
}
return;
}
不要忽略警告。
warning: passing argument 1 of ‘sort’ from incompatible pointer type [enabled by default]
sort(a);
^
sort.c:2:6: note: expected ‘int *’ but argument is of type ‘double *’
void sort(int a[]);
^
您已将 a
声明为 double
,但您的 function
收到 a
作为 int
。
改成如下。
void sort(double a[]);
你通过了双倍
double a;
sort(a);
主函数中的值,但在函数声明部分你的数据类型是整数
void sort(int a[])
更正为
void sort(double a[])