#include
#define N 10
char str[N];
int main(void)
{ int i,flag=1;
while(i!=0 )
{printf("\n输入字符串,长度为10:\n");
scanf("%s",&str);
if (strlen(str)>N)
printf("超过长度,请重输!");
else
flag = 0;
}
sort(str[i]);
printf("\n排序结果:");
for (i=0;i printf("%c",str[i]);
}
sort(char str[N])
{int i,j;
char t;
for (j=1;j for (i=0; i if (str[i]>str[i+1])
{ t=str[i]; str[i]=str[i+1]; str[i+1]=t;
}
}
是while那里吗,如果是的话应该怎么解决...
你的while代码是接收用户输入数据的,条件是i非零,但是又没有设置i=0的地方。
应该是判断用户输入是否为某个值时,输入结束才对。
.......首先把头文件写全了,还有你的for语句,不是这么用的吧....还有写的好乱,你先看看for语句再改改
你的while语句是不是判定输入为10个字符,那应该先把i赋值,不为0即可,再在else语句下将i值改为0,退出其循环,这样子就赋值成功。
冒泡排序法:
for(int i=0,i<9,i++){
for(int j=i+1,j<10,j++){
if(str[i]>str[j]){
int num;
num=str[j];
str[j]=str[i];
str[i]=num;
}
}
}
这是基本的冒泡排序法,你自己参照下,还有你那往数组输入数据应该使用for语句来输入。
#include<stdio.h>
#include<string.h>
#define N 10
char str[N];
void sort(char str[N]);
int main(void)
{
int i,flag=1;
while(flag)
{
printf("\n输入字符串,长度为10:\n");
scanf("%s",&str);
if (strlen(str)>N)
printf("超过长度,请重输!");
else
flag = 0;
}
sort(str);
printf("\n排序结果:");
printf("%s",str);
}
void sort(char str[N])
{
int i,j;
char t;
for (i=0;i<N;i++)
for (j=i+1;j<N;j++)
if (str[i]>str[j])
{
t=str[i];
str[i]=str[j];
str[j]=t;
}
}
我也是刚注册的,刚会粘贴代码,最后一个是正确的,你看一下