关于函数中传递地址值和结构体的一个小程序

来源:互联网 发布:linux jira 安装 编辑:程序博客网 时间:2024/05/22 12:39

程序功能:

读入五位用户的姓名和电话号码,按姓名的字典顺序排列后
(即从小到大排列),输出用户的姓名和电话号码
 

Code:
  1. #include<stdio.h>   
  2. #include<string.h>   
  3. typedef struct  
  4. {   
  5.  char a[20];   
  6.  int b[20];   
  7. }USER;   
  8. USER *px(USER *q)   
  9. {   
  10.  int m,n;   
  11.  USER t;   
  12.  for(m=0;m<4;m++)   
  13.  {   
  14.   for(n=m+1;n<5;n++)   
  15.    if(strcmp(q[m].a,q[n].a)>=0)   
  16.    {   
  17.     t=q[m];   
  18.     q[m]=q[n];   
  19.     q[n]=t;   
  20.    }   
  21.  }   
  22.  return q;   
  23. }   
  24. void sc(USER *p)   
  25. {   
  26.  int k;   
  27.  for(k=0;k<5;k++)   
  28.  {   
  29.   scanf("%s",p[k].a);/*注意scanf中空格为切断符*/  
  30.   scanf("%s",p[k].b);   
  31.  }   
  32.  p=px(p);   
  33.  printf("The name was small to big:/n");   
  34.  for(k=0;k<5;k++)   
  35.   printf("%s,%s/n",p[k].a,p[k].b);   
  36. }   
  37. main()   
  38. {   
  39.  USER c[5];   
  40.  sc(c);   
  41. }