大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先根据插入排序的原理,设计插入排序函数,函数传入参数是字符串数组和字符串数组的长度,函数无返回值。然后输入字符串,调用函数排序,最后输出排序后字符串。
在祁东等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都网站建设、外贸网站建设 网站设计制作定制网站,公司网站建设,企业网站建设,品牌网站设计,成都营销网站建设,外贸营销网站建设,祁东网站建设费用合理。
参考代码:
#includestdio.h
#includestring.h
#define MAX 1000
void insert(char *a,int n)
{
int i,j;
char key;
for(i=1;in;i++)//控制需要插入的元素
{
key=a[i]; //key为要插入的元素
for(j=i;j0 a[j-1]key;j--) //查找要插入的位置,循环结束,则找到插入位置
{
a[j] = a[j-1]; //移动元素的位置.供要插入元素使用
}
a[j] = key; //插入需要插入的元素
}
}
int main()
{
char a[MAX];
int n;
gets(a);//输入字符串
n=strlen(a);
insert(a,n);//调用函数排序
printf("after:\n");
puts(a);
return 0;
}
1
输入字符串;
2
对字符串进行排序;
3
输出。
排序中需要注意:
1
用strcmp比较字符串;
2
用strcpy执行字符串的赋值。
代码如下:
#define N 50
int main()
{
char s[N][100];
int i,j;
for(i = 0; i N; i ++)
scanf("%s",s[i]);
for(i = 0; i N-1; i ++)
{
for(j = i+1; j N; j ++)
{
if(strcmp(s[i],s[j])0)
{
char t[100];
strcpy(t,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],t);
}
}
}
for(i = 0; i N; i ++)
puts(s[i]);
}
这可以把字符串输入到字符数组中,然后采用排序的方法来实现:
(需要包含string.h头文件)
char t,s[200];
int i,i;
gets(s);
for(i=0;istrlen(s)-1;i++)
for(j=0;jstrlen(s)-1-i;j++)
if(s[j]s[j+1])
{t=s[j]; s[j]=s[j+1]; s[j+1]=t;}
puts(s);
你的字符串输入有问题,还有冒泡排序的几行算法有点问题,我这个应该可以通过#includestdio.h
void
main()
{
char
a[81],temp;
int
i=0,j,k;
scanf("%s",a);
for(j=strlen(a);j0;j--)
for(k=0;kj-1;k++)
if(a[k]a[k+1])
{
temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
printf("%s",a);
}
#include stdio.h
#include string.h
void f(char *str)
{
char *p,*q,*r,c;
/*--用选择排序法对字符串str中字符按从小到大排序。找出以下程序段中的错误--*/
for(p=str;*p;p++)
{
for(r=p,q=p+1;*q;q++)
if(*r*q)//应该加*号,不加*号的比较大小是没有意义的,因为r,q是指针,而要比较的是指针指向的地址所储存的变量,
所以要加*号..
r=q;
if(r!=p)
{
c=*r;
*r=*p;
*p=c;
}
}
/*--删除字符串str中的重复字符。找出以下程序段中的错误--*/
for(p=str;*p;p++)
{
for(q=p+1;*q *q==*p;q++)//增加了 *q=*p,这样才能保证当出现相同的字符时才开始操作,过程如下:
假设排好序的字符串为aab;
那么p首先指向a,q指向第二个a,此时满足*p==*q的条件,进入for循环,将q开始的字符串赋给p开始的字符串,即
aab-ab;
如果*p!=*q时,循环结束,大致就是这样子了..
strcpy(p,q--);
}
}
void main()
{
char s[50];
int number=0;
printf("Please enter a string:\n");
gets(s);
f(s);
printf("%s\n",s);
}