一、sort for循环
#include <stdio.h>
#define size 10 //宏定义
int main()
{
int a[size] = {0};
int i, j, tmp;
{
int a[size] = {0};
int i, j, tmp;
printf("please input \n");
for(i = 0; i < size; i++)
{
scanf("%d", &a[i]); //输入i个数,i=10;
}
{
scanf("%d", &a[i]); //输入i个数,i=10;
}
for (i = 0; i < size - 1; i++ ) //先循环size-1遍
{
for (j = 0; j < size - i - 1; j++) //再循环size-i-1
{
for (j = 0; j < size - i - 1; j++) //再循环size-i-1
{
if(a[j] < a[j + 1])
{
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp; //排序,最大放前面
}
}
}
for (i = 0; i < size; i++)
{
printf("%d ", a[i]); //打印排序好的数组
}
printf("\n");
return 0;
}
if(a[j] < a[j + 1])
{
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp; //排序,最大放前面
}
}
}
for (i = 0; i < size; i++)
{
printf("%d ", a[i]); //打印排序好的数组
}
printf("\n");
return 0;
}
二、sort 调用函数
#include <stdio.h>
#define size 10
void get(int *a) //形参位a的地址,取a的地址
{
int i; //每个调用函数都要声明变量
printf("please input \n");
{
int i; //每个调用函数都要声明变量
printf("please input \n");
for(i = 0; i < size; i++)
{
scanf("%d", &a[i]);
}
} //输入函数
void sort(int *a)
{
int tmp, i, j; //声明变量
void sort(int *a)
{
int tmp, i, j; //声明变量
for (i = 0; i < size - 1; i++ )
{
for (j = 0; j < size - i - 1; j++)
{
if(a[j] < a[j + 1])
{
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
} // 冒泡排序,从大到小
}
}
}
{
for (j = 0; j < size - i - 1; j++)
{
if(a[j] < a[j + 1])
{
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
} // 冒泡排序,从大到小
}
}
}
void print(int *a) //形参为a的地址
{
int i; //声明变量
for (i = 0; i < size; i++)
{
printf("%d ", a[i]);
}
printf("\n");
{
int i; //声明变量
for (i = 0; i < size; i++)
{
printf("%d ", a[i]);
}
printf("\n");
} //调用输出函数
int main()
{
int a[size] = {0};
int i, j;
{
int a[size] = {0};
int i, j;
get(a);
sort(a);
print(a); //实参为数组a
return 0;
}
sort(a);
print(a); //实参为数组a
return 0;
}
三、sort 指针
#include <stdio.h>
#define SIZE 5
int min(int x, int y)
{
return (x > y) ? 1 : 0;
}
{
return (x > y) ? 1 : 0;
}
int max(int x, int y)
{
return (x > y) ? 0 : 1;
}
{
return (x > y) ? 0 : 1;
}
void get_array(int *a)
{
int i;
{
int i;
printf("Please input :\n");
for (i = 0; i < SIZE; i++)
{
scanf("%d", &a[i]);
}
}
for (i = 0; i < SIZE; i++)
{
scanf("%d", &a[i]);
}
}
void sort(int *a, int (*p)(int, int))
{
int i, j, tmp;
for (i = 0; i < SIZE - 1; i++)
{
for (j = 0; j < SIZE - i - 1; j++)
{
if (p(a[j], a[j + 1]))
{
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
{
int i, j, tmp;
for (i = 0; i < SIZE - 1; i++)
{
for (j = 0; j < SIZE - i - 1; j++)
{
if (p(a[j], a[j + 1]))
{
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
void print(int *a)
{
int i;
{
int i;
for (i = 0; i < SIZE; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
{
printf("%d ", a[i]);
}
printf("\n");
}
int main()
{
int a[SIZE];
{
int a[SIZE];
get_array(a);
sort(a, min);
sort(a, min);
print(a);
return 0;
}
}
四、调换字符,sort 字符串
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
#define size 3
void sort(char *a[])
{
int i, j;
char *tmp;
for(i = 0; i < size - 1; i++)
{
for(j = 0; j < size - i - 1; j++)
{
if(strcmp(a[j], a[j + 1]) < 0 )
{
tmp = a[j];
a[j] = a[j + 1];
a[j +1] = tmp;
}
}
}
}
{
int i, j;
char *tmp;
for(i = 0; i < size - 1; i++)
{
for(j = 0; j < size - i - 1; j++)
{
if(strcmp(a[j], a[j + 1]) < 0 )
{
tmp = a[j];
a[j] = a[j + 1];
a[j +1] = tmp;
}
}
}
}
void print(char *a[])
{
int i;
for(i = 0; i < size; i++)
{
printf("%s ", a[i]);
}
printf("\n");
}
{
int i;
for(i = 0; i < size; i++)
{
printf("%s ", a[i]);
}
printf("\n");
}
int main()
{
char *a[size] = {0};
{
char *a[size] = {0};
printf("plesae input \n");
int i;
int i;
for(i = 0; i < size; i++)
{
a[i] = (char *)malloc(sizeof(char) * 100);
if (NULL == a[i])
{
printf("malloc failure");
}
scanf("%s", a[i]);
}
sort(a);
print(a);
for (i = 0; i < size; i++)
{
free(a[i]);
a[i] = NULL;
}
return 0;
}
{
a[i] = (char *)malloc(sizeof(char) * 100);
if (NULL == a[i])
{
printf("malloc failure");
}
scanf("%s", a[i]);
}
sort(a);
print(a);
for (i = 0; i < size; i++)
{
free(a[i]);
a[i] = NULL;
}
return 0;
}