#include "stdio.h"
#include "string.h"
void sort(char (*name)[20],int n){
int i,j,k
char t[20]
for(i=0i<ni++){
for(k=i,j=k+1j<nj++)
if(strcmp(name[k],name[j])>0) k=j
if(k!=i){
strcpy(t,name[k])
strcpy(name[k],name[i])
strcpy(name[i],t)
}
}
}
void print(char (*name)[20],int n){
int i
for(i=0i<nprintf("%s\n",name[i++]))
}
int main(void){
char name[10][20]
int n,i
while(1){
printf("Input n(1~10)...\nn=")
scanf("%d",&n)
if(n>0 &&n<11) break
printf("Error,redo: ")
}
printf("Type the name of %d books...\n",n)
for(i=0i<nfflush(stdin),gets(name[i++]))
sort(name,n)
printf("\n")
print(name,n)
return 0
}
#include <stdio.h>#include <string.h>
#define max 10
#define LEN 100 //定义了书名的最大长度
typedef struct
{
char name[LEN]
}book
int main ()
{
void sort(book* ,int ) //声明一个函数 用来对书名进行排序
book a[max] //定义了一个结构体数组
int i
printf("Input the name of ten books:\n")
for(i=0i<maxi++)
gets(a[i].name) //输进第i本书的名字
sort(a,max) //把数组a看成是一个普通数组来用
printf("After sort:\n")
for(i=0i<maxi++)
puts(a[i].name)
return 0
}
void sort(book* q,int n)
{
int i,j,min
char temp[LEN]//用来临时储存书名
//用的是选择排序
for(i=0i<n-1i++)
{
min=i //先假定第i本书的书名是最小的,则用min来记录其下标
for(j=i+1j<nj++) //跟第i本书以后的书名进行比较 找到最小的
{
if(strcmp(q[j].name,q[min].name)<0) //如果比最小的还要小的话
min=j //更新最小的书名的下标
}
if(min!=i) //如果min!=i说明在上面这个循环中找到有比假定的还要小的值
{
strcpy(temp,q[min].name)
strcpy(q[min].name,q[i].name)
strcpy(q[i].name,temp)
}
}
}
#include <stdio.h>#include <string.h>
void StringReverse(char *str)
{
if(NULL == str)
{
return
}
char *pBegin = str
char *pEnd = str + strlen(str) - 1
while(pBegin <pEnd)
{
char tmp = *pBegin
*pBegin = *pEnd
*pEnd = tmp
pBegin ++, pEnd --
}
}
int main()
{
char str[] = "123456789"
StringReverse(str)
printf("%s\n",str)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)