5_41.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:1k
源码类别:

文章/文档

开发平台:

C/C++

  1. #include <iostream.h>
  2. #include <iomanip.h>
  3. struct sport //结构声明(声明结构时不分配内存空间)
  4. {
  5. char num[4]; //数据成员1(结构中包含的数据变量称为数据成员)
  6. double grade; //数据成员2
  7. }; //不能缺少分号
  8. void print(sport* s)
  9. {
  10. static int num=0;
  11. cout<<setw(6)<<(num+1)<<setw(6)<<s->num<<setw(6)<<s->grade<<endl;
  12.     num++;
  13. }
  14. void main()
  15. {
  16. sport a[12]={{"001",13.6},{"002",14.8},{"010",12.0},
  17. {"011",12.7},{"023",15.6},{"025",13.4},
  18. {"031",14.9},{"036",12.6},{"037",13.4},
  19. {"102",12.5},{"325",15.3},{"438",12.7}};
  20. sport * pa[12]={&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],
  21. &a[6],&a[7],&a[8],&a[9],&a[10],&a[11]};
  22. sport * temp; //定义sport类型的指针变量temp
  23.     int i,j;
  24. int row=12;
  25.     
  26. for(i=0;i<row-1;i++)  //直接插入排序,此为稳定排序。注意与冒泡法比较
  27. {
  28. temp=pa[i+1];
  29. j=i;
  30. while(j>-1 && temp->grade<pa[j]->grade)
  31. {
  32. pa[j+1]=pa[j];
  33. j--;
  34. }
  35. pa[j+1]=temp;
  36. }
  37. cout<<setw(6)<<"名次"<<setw(6)<<"编号"<<setw(6)<<"成绩"<<endl;                                
  38. for( i=0;i<12;i++)
  39. print(pa[i]); //最后通过结构指针输出它们访问的结构变量值
  40. }