|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h> //冒泡排序
#define N 100
int arr[N] = {0};
#define bool int
#define true 1
#define false 0
/*typedef enum
{
true = 1, false = 0
}bool;*/
void bubble_sort(int arr[], int n)
{
int i;
bool sorted = false;
for(;sorted = !sorted;n--)
{
for(i=0;i<n-1;i++)
{
if(arr[i]>arr[i+1])
{
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
sorted = false;
}
}
}
}
int main()
{
int n;
scanf("%d", &n);
int i;
for(i=0;i<n;i++)
{
scanf("%d", &arr[i]);
}
bubble_sort(arr, n);
for(i=0;i<n-1;i++)
{
printf("%d ", arr[i]);
}
printf("%d\n", arr[i]);
return 0;
}
以上是正确的代码
以下是希望的到改善的代码,我想问题就是在局部变量的问题上(希望能够通过函数调用实现!最近有点短路!!!望解决!!!!!)
#include<stdio.h> //冒泡排序
#define N 100
int arr[N] = {0};
#define bool int
#define true 1
#define false 0
/*typedef enum
{
true = 1, false = 0
}bool;*/
void swap(int a,int b)
{
int temp = a;
a = b;
b = temp;
}
void bubble_sort(int arr[], int n)
{
int i;
bool sorted = false;
for(;sorted = !sorted;n--)
{
for(i=0;i<n-1;i++)
{
if(arr[i]>arr[i+1])
{
swap(arr[i], arr[i+1]);
sorted = false;
}
}
}
}
int main()
{
int n;
scanf("%d", &n);
int i;
for(i=0;i<n;i++)
{
scanf("%d", &arr[i]);
}
bubble_sort(arr, n);
for(i=0;i<n-1;i++)
{
printf("%d ", arr[i]);
}
printf("%d\n", arr[i]);
return 0;
}
- int main()
- {
- int n;
- scanf("%d", &n);
- int i;
- for (i = 0; i<n; i++)
- {
- scanf("%d", &arr[i]);//1
- }
- bubble_sort(arr, n);
- for (i = 0; i<n - 1; i++)
- {
- printf("%d ", arr[i]);//2
- }
- printf("%d\n", arr[i]);//3
- }
复制代码
网页上传的时候把代码里原来的【i】给抹掉了。
|
|