赞
踩
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
-
- //冒泡
- void bubble(int arr[],int len)
- {
- for(int i=1;i<len;i++)
- {
- for(int j=0;j<len-i;j++)
- {
- if(arr[j]>arr[j+1])
- {
- int t=arr[j];
- arr[j]=arr[j+1];
- arr[j+1]=t;
- }
- }
- }
- }
-
- //简单选择
- void simple(int arr[],int len)
- {
- for(int i=0;i<len;i++)
- {
- int min=i;
- for(int j=i;j<len;j++)
- {
- if(arr[min]>arr[j])
- min=j;
- }
- if(min!=i)
- {
- int t=arr[min];
- arr[min]=arr[i];
- arr[i]=t;
- }
- }
- }
- //输出
- void output(int arr[],int len)
- {
- for(int i=0;i<len;i++)
- {
- printf("%-4d",arr[i]);
- }
- puts("");
- }
-
- //一次排序,返回基准值下标
- int one_sort(int arr[],int low,int high)
- {
- int key=arr[low];
- while(low<high)
- {
- while(low<high && key <= arr[high])
- high--;
- arr[low]=arr[high];
-
- while(low<high && key >=arr[low])
- low++;
- arr[high]=arr[low];
- }
- arr[low]=key;
- return low;
- }
- //快速排序
- void quick(int arr[],int low,int high)
- {
- if(low>=high)
- return;
- int mid=one_sort(arr,low,high);
- quick(arr,low,mid-1);
- quick(arr,mid+1,high);
- }
-
- //插入排序
- void insert_sort(int arr[],int len)
- {
- int i,j;
- for(i=1;i<len;i++)
- {
- int temp=arr[i];
- for(j=i-1;j>=0;j--)
- {
- if(arr[j]>temp)
- {
- arr[j+1]=arr[j];
- }
- else
- break;
- }
- arr[j+1]=temp;
- }
- }
- int main(int argc, const char *argv[])
- {
- int arr[]={23,24,12,5,33,5,34,7};
- int len=sizeof(arr)/sizeof(arr[0]);
- bubble(arr,len);
- output(arr,len);
-
- simple(arr,len);
- output(arr,len);
-
- quick(arr,0,len-1);
- output(arr,len);
-
- insert_sort(arr,len);
- output(arr,len);
- return 0;
- }
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- int DigitSum(int num)
- {
- if(num<0)
- return -1;
- else if(num>=0 && num<=9)
- return num;
- else
- {
- int sum=num%10+DigitSum(num/10);
- return sum;
- }
- }
- int main(int argc, const char *argv[])
- {
- int num;
- printf("please enter num:");
- scanf("%d",&num);
-
- int s=DigitSum(num);
- if(s==-1)
- puts("error");
- else
- printf("s=%d\n",s);
- return 0;
- }
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #define SWAP(num) (((num&0xaaaaaaaa)>>1) + ((num & 0x55555555)<<1))
- int main(int argc, const char *argv[])
- {
- int num;
- printf("please enter num:");
- scanf("%d",&num);
- printf("s_num=%d\n",SWAP(num));
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。