飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4836|回复: 4

[C/C++] NO.19 作业

[复制链接]

该用户从未签到

发表于 2011-1-17 20:56:10 | 显示全部楼层 |阅读模式
用了半小时.希望看了的给点意见。简化一下代码啊.谢谢.
  1. #define N 10
  2. #include<string.h>
  3. void change(int *a,int *b)
  4. {
  5.        *(a)=*(a)+*(b);
  6.        *(b)=*(a)-*(b);
  7.        *(a)=*(a)-*(b);
  8. }
  9. void inlist(int *a,int n)
  10. {
  11.         int i;

  12.         for(i=0;i<n;i++)
  13.         {
  14.                 scanf("%d",a+i);
  15.         }
  16. }
  17. void showlist(int *a,int n)
  18. {
  19.         int i;

  20.         for(i=0;i<n;i++)
  21.         {
  22.                 printf("%d ",*(a+i));
  23.         }
  24.         printf("\n");
  25. }
  26. void sortlist(int *a,int n,char *str)
  27. {
  28.         int i,j;
  29.         char str1[]="ltos";
  30.         char str2[]="stol";

  31.         if(strcmp(str,str1)==0)
  32.         {
  33.                 for(i=0;i<n-1;i++)
  34.                 {
  35.                         for(j=0;j<n-1-i;j++)
  36.                         {
  37.                                 if(a[j]<a[j+1])
  38.                                 {
  39.                                         change(a+j,a+j+1);
  40.                                 }
  41.                         }
  42.                 }
  43.         }
  44.         else if(strcmp(str,str2)==0)
  45.         {
  46.                 for(i=0;i<n-1;i++)
  47.                 {
  48.                         for(j=0;j<n-1-i;j++)
  49.                         {
  50.                                 if(a[j]>a[j+1])
  51.                                 {
  52.                                         change(a+j,a+j+1);
  53.                                 }
  54.                         }
  55.                 }
  56.                
  57.         }
  58.         else
  59.         {
  60.                 for(i=0;i<n-1;i++)
  61.                 {
  62.                         for(j=0;j<n-1-i;j++)
  63.                         {
  64.                                 if(i%2)
  65.                                 {
  66.                                         if(a[j]<a[j+1])
  67.                                         {
  68.                                                  change(a+j,a+j+1);
  69.                                         }
  70.                                        
  71.                                 }
  72.                                 else
  73.                                 {
  74.                                         if(a[j]>a[j+1])
  75.                                         {
  76.                                                  change(a+j,a+j+1);
  77.                                         }
  78.                                        
  79.                                 }
  80.                         }
  81.                 }
  82.                
  83.         }
  84. }
  85. main()
  86. {
  87.         int *a=(int *)malloc(N*sizeof(int));

  88.         inlist(a,N);

  89.     printf("your Input number:");

  90.         showlist(a,N);

  91.         sortlist(a,N,"ltos");

  92.     printf("ltos:");

  93.         showlist(a,N);

  94.         sortlist(a,N,"stol");

  95.     printf("stol:");

  96.         showlist(a,N);

  97.         sortlist(a,N,"lx");

  98.     printf("lx:");

  99.         showlist(a,N);

  100.         free(a);

  101. }
复制代码
PYG19周年生日快乐!

该用户从未签到

发表于 2011-1-18 11:10:45 | 显示全部楼层
我的传到群共享了 ~
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2011-1-18 11:40:29 | 显示全部楼层
哦,好的。我去看看.
PYG19周年生日快乐!

该用户从未签到

发表于 2011-1-18 13:47:31 | 显示全部楼层
92行和94行,先读数字后提醒输入?太诡异了吧。。。
PYG19周年生日快乐!

该用户从未签到

发表于 2011-1-18 13:48:37 | 显示全部楼层
呃。。我懂了。。。你是直接输了数字再显示一次。。。
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表