新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
十余年的西华网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整西华建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“西华网站设计”,“西华网站推广”以来,每个客户项目都认真落实执行。
#includestring.h
void sort(char *a[]);
void print(char *a[]);
int main()
{
char *a[] ={"ceo","define","basic","abc","empty"};
printf("原来的序列是:\n");
print(a);
sort(a);
printf("\n排序后的序列是:\n");
print(a);
printf("\n");
return 0;
}
void sort(char *a[])
{
int i,j;
char *temp;
for(i=0;i4;i++)//注意是i4
{
for(j=0;j4;j++)//注意是j4,因为下面要+1和后面的那个字符串比较
{
if(strcmp(a[j],a[j+1])0)//字符串比较:0表示前面的字符串比后面的大则交换
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
void print(char *a[])
{
int i;
for(i=0;i5;i++)
{
printf("%s ",a[i]);
}
}
运行效果:
扩展资料:
return 0的用法:
return的作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。
函数的定义一般是这样的,例如:
inta(inti)//第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字
{
...//省略函数体内容
returnb;//b必须与函数头的返回值一致(此处为int型)
}
简单函数举例:
intaddOne(intb)
{
returnb+1;
}
该函数的作用是取得一个数,将这个数加上1,再将结果返回
调用时这样:
intresult=addOne(2);//此时result的值为3
函数括号里的参数也可以为变量或能算出值的表达式
以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a[](数组),*a(指针),结构或类(c++)
但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如voidprint()//括号中为空表示无传递参数、
{
printf("a");
printf("b");
return;//函数执行到此处结束
printf("c");
}//该函数只执行到return语句处,即屏幕上输出的为"ab"
#include stdio.h
int main()
{ char c[6]= {'c', 'a', 't', 'd', 'o', 'g'},t;
int i,j;
for (i=0; i5; i++)
for (j=0; j5-i; j++)
if(c[j]c[j+1])
{ t=c[j];
c[j]=c[j+1];
c[j+1]=t;
}
for (i=0; i6; i++)
printf("%c ", c[i]);
printf("\n");
return 0;
}
1、该排序算法是选择排序算法
2、在i位置为大写字母时进行第二层遍历
3、如果判断不为大写字母,不需要j++之后continue,否则会跳过一个字母
修改后代码如下,修改位置注释给出:
//1072字母排列
#includestdio.h
#includestring.h
int main()
{
char a[65];
int i,j,b,min;
gets(a); //读取一行内容
b=strlen(a);
//冒泡排序法,i为前面的字符,j为后一个字符
for(i=0;ib-1;i++)
{
if(a[i]'A'||(a[i]'Z')||a[i]==' ')continue;/////judge
for(j=i+1;jb;j++)
{
if(a[j]'A'||(a[j]'Z')||a[j]==' ')
{
//j++;//delete
continue;
}
if(a[i]a[j])//从小到大排序,小的排左边,大的排右边
{
min=a[j];
a[j]=a[i];
a[i]=min;
}
}
}
for(i=0;ib;i++)
printf("%c",a[i]);
return 0;
}
#include stdio.h
#include string.h
#define MAX_NAME 20 //最大名字长度
#define MAX_NUM 100 //最大学生人数
void sort_bubble(char (*pc)[MAX_NAME],int n)//排序函数
{
int i,j;
char str[MAX_NAME];
for(i=0;in-1;i++)
{
for(j=i+1;jn;j++)
{
if(strcmp(pc[i],pc[j])0)
{
strcpy(str,pc[i]);
strcpy(pc[i],pc[j]);
strcpy(pc[j],str);
}
}
}
}
void display_name(char (*pc)[MAX_NAME],int n)//显示这n个姓名
{
int i;
for(i=0;in;i++)
{
printf("%s\n",pc[i]);
}
}
int main()
{
int i=1,n;
char str[MAX_NUM][MAX_NAME];
printf("请输入学生总数:");
scanf("%d",n);
while(i=n)
{
printf("请输入第%d个学生姓名:",i);
scanf("%s",str[i++-1]);
}
printf("排序前的学生名单如下:\n");
display_name(str,n);
sort_bubble(str,n);
printf("排序后的学生名单如下:\n");
display_name(str,n);
return 0;
}
说明:
1:采用的是冒泡排序,用快速排序当然快些,但我忘了
2:已验证通过,结果正确。
3:随意输入人数和姓名,只要数组不越界就没有问题!
4:两个函数:排序和显示
5:给分+好评