#include<stdio.h>
#include<string.h>
#define SIZE 91
#define LIM 31
#define HALT""
void stsrt(char*strings[],int num);
int main(void)
{
char input[LIM][SIZE];
char*ptstr[LIM];
int ct=0;
int k=0;
printf("input up to%d lines,and I will sort them.\n",LIM);
printf("To stop,press the enter key at a line's start.\n");
while(ct<LIM&&gets_s(input[ct],100)!=NULL&&input[ct][0]!='\0')
{
ptstr[ct]=input[ct];
ct++;
}
stsrt(ptstr,ct);
puts("\n here's the sorted list:\n");
for(k=0;k<ct;k++)
{
puts(ptstr[k]);
}
puts("\n here's the list:\n");
for(k=0;k<ct;k++)
{
puts(input[k]);
}
return 0;
}
void stsrt(char*strings[],int num)
{
char*temp;
int top,seek;
for(top=0;top<num-1;top++)
{
for(seek=top+1;seek<num;seek++)
{
if(strcmp(strings[top],strings[seek])>0)
{
temp=strings[top];
strings[top]=strings[seek];
strings[seek]=temp;
}
}
}
printf函数使用注意事项
1、域宽
%d:按整型数据的实际长度输出。
如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;
如果我们要打印的数的位数如果超过我们设定m则原样输出;
如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",1.0/3);输出结果:0.333333%。
#include
#include
#define N 10
void main()
{
int i,j;
char str[N+1][20];
for(i=0;iscanf("%s",str[i]);
for(i=0;ifor(j=i+1;j if(strcmp(str[i],str[j])>0)
{
strcpy(str[N],str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],str[N]);
}
for(i=0;iif(i!=N-1)
printf("%s ",str[i]);
else
printf("%s\n",str[i]);
}
#include
#include
#define N 10
void main()
{
int i,j;
char str[N+1][20];
for(i=0;iscanf("%s",&str[i]);
for(i=0;ifor(j=i+1;j if(strcmp(str[i],str[j])>0)
{
strcpy(str[N],str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],str[N]);
}
for(i=0;iif(i!=N-1)
printf("%s ",str[i]);
else
printf("%s\n",str[i]);
}
#include
#include
int main(void)
{
void sort(char s[][11]);
char str[10][11];
int i;
for(i=0;i<10;i++)
scanf("%s",str[i]);
sort(str);
for(i=0;i<10;i++)
printf("%s ",str[i]);
putchar('\n');
return 0;
}
void sort(char s[][11])
{
int i,j;
char tmps[11];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(strcmp(s[i],s[j])>0)
{
strcpy(tmps,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],tmps);
}
}