- UID
- 69876
注册时间2010-8-3
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
用了半小时.希望看了的给点意见。简化一下代码啊.谢谢.- #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[j]<a[j+1])
- {
- 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[j]>a[j+1])
- {
- 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[j]<a[j+1])
- {
- change(a+j,a+j+1);
- }
-
- }
- else
- {
- if(a[j]>a[j+1])
- {
- 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);
- }
复制代码 |
|