啊哈磊_编程从这里起步
标题:
C语言学习例程----指针数组例程
[打印本页]
作者:
天山雪
时间:
2012-7-22 12:50
标题:
C语言学习例程----指针数组例程
/* 关于指针数组、函数调用、字符串函数运用的例程:将多个字符串按字母顺序输出*/
#include <stdio.h>
void sort(char *str[],int n) /*定义排序函数sort*/
{ /*花括号独占一行*/
char *temp; /*定义一个指向字符类型名叫temp的指针变量*/
int i,j,k; /*定义整型变量i,j,k*/
for(i=0;i<n-1;i++) /*for循环,数组元素一共比较了n次*/
{ /*for循环执行语句有数条时用花括号来界定范围*/
k=i; /*设当前数组元素排序为首并记录下标*/
for(j=i+1;j<n;j++) /*二重for循环嵌套来循环比较*/
if(strcmp(str[k],str[j])>0) k=j; /*用strcmp()字符串比较函数比较交换*/
if(k!=i) /*if条件语句,判断假定的数组下标有没有改变*/
{temp=str[i];str[i]=str[k];str[k]=temp;} /*数组元素交换*/
} /*外层for循环执行语句结束*/
} /*花括号独占一行*/
/*为了程序易读,留一行空语句分割程序层次*/
int main() /*主函数*/
{ /*花括号独占一行*/
int i,n=4; /*定义整型变量i,n,n赋初值*/
char *string[4]={"FORTRAN","PASCAL","BASIC","C"}; /*定义指针型数组并赋值*/
sort(string,n); /*调用函数*/
for(i=0;i<n;i++) /*循环输出指针数组各个元素*/
printf("%s\n",string[i]);
sleep(50000); /*屏幕停留50000mS,即DOS窗口停留50秒*/
return 0; /*主函数返回值*/
}
作者:
天山雪
时间:
2012-7-22 12:56
本帖最后由 nmjkl 于 2012-7-23 09:22 编辑
#include <stdio.h>
void sort(char *str[],int n)
{
char *temp;
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(str[k],str[j])>0) k=j;
if(k!=i)
{temp=str;str=str[k];str[k]=temp;}
}
}
int main()
{
int i,n=4;
char *string[4]={"FORTRAN","PASCAL","BASIC","C"};
sort(string,n);
for(i=0;i<n;i++)
printf("%s\n",string);
sleep(50000);
return 0;
}
========================
去掉注释,代码比较美观,容易阅读。
========================
作者:
天山雪
时间:
2012-7-22 12:57
以上代码全是我一个字一个字慢慢敲出来的。
作者:
天山雪
时间:
2012-7-22 13:00
#include <stdio.h>
void sort(char *str[],int n)
{
char *temp;
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(str[k],str[j])>0) k=j;
if(k!=i)
{temp=str;str=str[k];str[k]=temp;}
}
}
int main()
{
int i,n=4;
char *string[4]={"FORTRAN","PASCAL","BASIC","C"};
sort(string,n);
for(i=0;i<n;i++)
printf("%s\n",string);
sleep(50000);
return 0;
}
==================
红色代码忘了缩格书写,特此更正!
==================
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2