一道C编程题目,高分寻求高手帮帮忙..感激不尽,过几天就要考试了,感激不尽

来源:百度知道 编辑:UC知道 时间:2024/07/04 02:16:20
编程实现,将任意给定的一个字符数组中下标值为奇数的元素从大到小排列,其它元素不变。

应该是这样才对啊。。是下标为 奇数,下标是从0开始的。。

#include <stdio.h>
#define N 100
void main()
{
char data[N],temp;
int i,j,n=0;
gets(data);
for (i=0;data[i]!='\0';i++)n++;

for(i=1;i<n;i++)
for(j=1;j<n-i-1;j+=2)
if(data[j]<data[j+2])
{
temp = data[j];
data[j] = data[j+2];
data[j+2] = temp;
}
puts(data);
getch();
}

//VC2005下测试通过

#include <stdio.h>
#include <string.h>
#define MAX_LEN 100

int main( )
{
char str[MAX_LEN]={0};

printf( "请输入要排序的字符串:");
scanf( "%s", str );
int len = strlen( str);
int k;
char ch;

for ( int i=1; i < len; i+=2)
{
k=i;
for ( int j=i+2; j < len; j+=2 )
{
if ( str[k] < str[j] )
{
k=j;
}
}
if ( k != i)
{
ch = str[k];<