问题描述:对N个整数(数据由键盘输入)进行升序排列。
一般方法:
#include<stdio.h>
#define N 10
int main()
{
int i;
int j;
int t;
int a[N];
int count = 0;
printf("请为数组元素赋初值:\n");
for(i = 0; i < N; i++)
{
scanf("%d",&a[i]);
}
for(i = 1; i <= N - 1; i++)
{
for(j = 0; j < N - 1; j++)
{
if(a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
printf("经过交换后的数组元素为:\n");
for(i = 0; i < N; i++)
{
count++;
printf("%d ",a[i]);
if(count % 5 == 0)
{
printf("\n");
}
}
printf("\n");
return 0;
}
动态分配内存法:
#include<stdio.h>
#include<stdlib.h>
void bubbling_sort_method(int *num,int n)
{
int i;
int j;
int temp;
for(i = 0; i < n; i++)
{
for(j = i + 1; j < n; j++)
{
if(num[i] > num[j])
{
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
}
int main()
{
int N;
int i;
int count = 0;
int *num_array;
printf("Enter N:\n");
scanf("%d",&N);
num_array = (int *)malloc(sizeof(int) * N);
printf("Please input the num_string:\n");
for(i = 0; i < N; i++)
{
scanf("%d",num_array + i);
}
bubbling_sort_method(num_array,N);
printf("The last condition is:\n");
for(i = 0; i < N; i++)
{
count++;
printf("%d ",num_array[i]);
if(count % 10 == 0)
{
printf("\n");
}
}
printf("\n");
return 0;
}