C语言编程 编写程序,从键盘输入一个字符串放在字符数组a中,用选择法将a中的有效字符按降序排列

2024-11-17 03:47:51
推荐回答(3个)
回答1:

#include
#include
#include
void inOrder(char array[], int n );
int main(int argc, char *argv[])
{

char temp[100];
printf("请输入字符串:\n");
gets(temp);
char a[strlen(temp)+1];
strcpy(a,temp);
inOrder(a,strlen(temp));
int k;
for(k=0; k {
printf("%c",a[k]);
}
system("pause");
return 0;
}
//选择法排序函数
void inOrder(char array[], int n)
{
int i, j;
char temp;
for(i=0; i {
for(j=i+1; j {
if(array[j]>array[i])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}

在DEV C++中编写可用,temp数组只是暂时存放输入字符串的,它的大小可根据你实际需要调大调小。

回答2:

我用C#的,给你一个思路,我懒得写了。

1、将字符串分离到字符数组里
2、判断字符是不是有效
3、将有效字符另存
4、将另存的数组循环排列
5、合并成字符串

回答3:

void choise(int *a,int n)
{
int i,j,k,temp;
for(i=0;ik=i;/*给记号赋值*/
for(j=i+1;jif(a[k]>a[j]) k=j;/*是K总是指向最小元素*/
if(i!=k){/*当k!=j是才交换,否则a[i]即为最小*/
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}