heguile 发表于 2011-1-17 20:56:10

NO.19 作业

用了半小时.希望看了的给点意见。简化一下代码啊.谢谢.#define N 10
#include<string.h>
void change(int *a,int *b)
{
       *(a)=*(a)+*(b);
       *(b)=*(a)-*(b);
       *(a)=*(a)-*(b);
}
void inlist(int *a,int n)
{
      int i;

      for(i=0;i<n;i++)
      {
                scanf("%d",a+i);
      }
}
void showlist(int *a,int n)
{
      int i;

      for(i=0;i<n;i++)
      {
                printf("%d ",*(a+i));
      }
      printf("\n");
}
void sortlist(int *a,int n,char *str)
{
      int i,j;
      char str1[]="ltos";
      char str2[]="stol";

      if(strcmp(str,str1)==0)
      {
                for(i=0;i<n-1;i++)
                {
                        for(j=0;j<n-1-i;j++)
                        {
                              if(a<a)
                              {
                                        change(a+j,a+j+1);
                              }
                        }
                }
      }
      else if(strcmp(str,str2)==0)
      {
                for(i=0;i<n-1;i++)
                {
                        for(j=0;j<n-1-i;j++)
                        {
                              if(a>a)
                              {
                                        change(a+j,a+j+1);
                              }
                        }
                }
               
      }
      else
      {
                for(i=0;i<n-1;i++)
                {
                        for(j=0;j<n-1-i;j++)
                        {
                              if(i%2)
                              {
                                        if(a<a)
                                        {
                                                 change(a+j,a+j+1);
                                        }
                                       
                              }
                              else
                              {
                                        if(a>a)
                                        {
                                                 change(a+j,a+j+1);
                                        }
                                       
                              }
                        }
                }
               
      }
}
main()
{
      int *a=(int *)malloc(N*sizeof(int));

      inlist(a,N);

    printf("your Input number:");

      showlist(a,N);

      sortlist(a,N,"ltos");

    printf("ltos:");

      showlist(a,N);

      sortlist(a,N,"stol");

    printf("stol:");

      showlist(a,N);

      sortlist(a,N,"lx");

    printf("lx:");

      showlist(a,N);

      free(a);

}

Nisy 发表于 2011-1-18 11:10:45

我的传到群共享了 ~

heguile 发表于 2011-1-18 11:40:29

哦,好的。我去看看.

sosonemo 发表于 2011-1-18 13:47:31

92行和94行,先读数字后提醒输入?太诡异了吧。。。

sosonemo 发表于 2011-1-18 13:48:37

呃。。我懂了。。。你是直接输了数字再显示一次。。。
页: [1]
查看完整版本: NO.19 作业