写一个函数,用起泡法对输入的十个字符按由小到大序排列
#include <stdio.h>
#include <stdlib.h>
void sort(char s[], int n); //定义排序函数
int main()
{
char str[11];
printf("Please enter 10 charactor: "); //输入10个字符
gets(str);
sort(str, 10); //调用排序函数
system("pause");
return 0;
}
//排序函数(起泡法)
void sort(char s[], int n)
{
for (int i=0; i<n-1; i++)
for (int j=0, t; j<n-1-i; s[j]>s[j+1]?t=s[j],s[j]=s[j+1],s[j+1]=t, j++ :j++);
printf("Sort array: ");
puts(s);
}
有帮助的话采纳一下哦,谢谢!🙈🙈🙈
#include <stdio.h>
void BubbleSort(int arr[],int n)
{
int a=n;
while(n-1)//进行n-1次排序
{
int i=0;
while(i<n-1)//一次排序判断n-1次,最多交换n-1次
{
if(arr[i]>arr[i+1])
{
int tem=arr[i];
arr[i]=arr[i+1];
arr[i+1]=tem;
}
i++;
}
--n;
}
}
int main()
{
int a[10]={5,8,7,9,6,4,3,1,10,2};
int j,n=10;
printf("排序前:");
for(j=0;j<n;j++)
{
printf("%d ",a[j]);
}
BubbleSort(a,n);
printf("\n排序后:");
for(j=0;j<n;j++)
{
printf("%d ",a[j]);
}
return 0;
}
#include<stdio.h>
int main()
{
void sort(char []);
char a[10];
int i=0;
printf("请输入十个字符:");
for(i=0;i<10;i++){
scanf("%c",&a[i]);
}
sort(a);
printf("从小到大顺序为:");
for(i=0;i<10;i++)
printf("%c ",a[i]);
}
void sort(char str1[])
{
int i,j;
char temp;
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(str1[i]>str1[j]){
temp=str1[i];
str1[i]=str1[j];
str1[j]=temp;
}
}
#include <stdio.h>
#include <string.h>
void BubbleSort(char str[])
{
int i, j;
char tmp;
int len = strlen(str);
for (i = 0; i < len - 1; ++i)
{
for (j = 0; j < len - i - 1; ++j)
{
if (str[j] > str[j + 1])
{
tmp = str[j];
str[j] = str[j + 1];
str[j + 1] = tmp;
}
}
}
}
int main()
{
int i;
char str[11] = {0};
printf("请输入10个字符:>");
for (i = 0; i < 10; ++i)
scanf("%c", &str[i]);
BubbleSort(str);
printf("string sorted: %s\n", str);
return 0;
}