编写程序,实现将字符串str中下标值为偶数的元素由小到大排序,其他元素不变。

#include<stdio.h>
void main()
{
int i=0,t,j;
char str[40];
printf("input the string:\n");
gets(str);
for(i=0;str[i]!='\0'||str[i+1]!='\0';i=i+2)
{
for(j=0;str[j]!='\0'||str[j+1]!='\0';j=j+2)
if(str[i]>str[j+2])
{
t=str[j];
str[i]=str[j+2];
str[j+2]=t;
}
}
puts(str);
}

刚学C语言,不知道哪里错了。请指教,最好说明一下为什么执行不了。谢谢
最新回答
被丘比特遗忘的爱゛

2025-06-27 05:36:15

#include<stdio.h>
#include<stdlib.h>
main()
{
int i=0,j;
char t,str[40];//设定为字符变量
printf("input the string:\n");
gets(str);
for(i=0;str[i]!='\0'||str[i+1]!='\0';i=i+2)
{
for(j=i+2;str[j]!='\0'||str[j+1]!='\0';j=j+2)//从下一个字符开始
if(str[i]>str[j])
{
t=str[j];
str[j]=str[i];
str[i]=t;//基本转换格式
}
}
puts(str);
system("pause");
}