新手刚写了个起泡算法,一大堆错误,检查不出哪错了,各位给我看看
#include <stdio.h>
#include <math.h>
#define n 5
void main()
{
array_pao();
}
void array_pao()
{
float a(n)=(3.6,7,1,2.8,2);
float t;
int j;
for(j=0;j<n-1;++j)
{
while a[j]>a[j+1]
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
break;
printf(" %c",a[n]);
}
[解决办法]
发现错误不少啊。
#include <stdio.h>#define N 5int main(){ void array_pao();//先声明,后使用。array_pao();getchar();return 0;}void array_pao(){float a[N]={3.6,7,1,2.8,2};//不存在用小括号的情况吧float t;int j,i;for(i=0;i<N-1;i++){for(j=i+1;j<N;++j){if(a[j]<a[i]){t=a[j];a[j]=a[i];a[i]=t;}}}for(i=0;i<N;i++) printf(" %f",a[i]);}
[解决办法]
#include <stdio.h>#include <math.h>#define n 5void main(){void array_pao();array_pao();}void array_pao(){float a[n]={3.6,7.0,1.0,2.8,2.0};float t;int j,m,p;for(p=1;p<5;++p)for(j=0;j<n-1;++j){while(a[j]>a[j+1]) //这里用if {t=a[j];a[j]=a[j+1];a[j+1]=t;}}for(m=0;m<5;++m){printf(" %f",a[m]);}}