程序4

来源:互联网 发布:面对网络舆论你怎么看 编辑:程序博客网 时间:2024/06/09 18:21

 #define _CRT_SECURE_NO_WARNINGS 1//编写函数实现一个数的二进制序列从左到右翻转/*#include<stdio.h>unsigned int reverse_bit(unsigned int value){unsigned int target=0;unsigned int flag=1;int i=0;for(i=0;i<32;i++){if(value&flag<<i){target|=(flag<<(31-i));}}return target;}int main(){printf("%u\n",reverse_bit(25));return 0;}//不用(a+b)/2求两个数的平均数(相同部分加不同部分除以2)#include<stdio.h>int main(){int a,b;scanf("%d%d",&a,&b);printf("平均值为:%d\n",(a&b)+((a^b)>>1));return 0;}//查找一个数组中仅出现一次的数字,其他均成对出现#include<stdio.h>int main(){int arr[]={1,2,3,4,4,3,2,5,1};int sz=sizeof(arr)/sizeof(arr[0]);int i=0;for(i=1;i<sz;i++){arr[0]^=arr[i];}printf("仅出现一次的数字是%d\n",arr[0]);return 0;}*///将"student a am i"以"i am a student"的形式输出//isspace()的用法:如果C为空格,则返回非零值#include<stdio.h>static void reverse(char*start,char*end){while(start<end){*start^=*end;*end^=*start;*start^=*end;start++;end--;}}void SiwtchString(char*arr){char*fast=arr;char*slow=fast;while(*fast!='\0'){if(isspace(*fast)){reverse(slow,fast-1);fast++;slow=fast;}else{fast++;}}reverse(slow,fast-1);reverse(arr,fast-1);}int main(){char arr[]="student a am i";printf("原字符串是:%d\n");printf("%s\n",arr);printf("翻转后字符串是:\n");    SiwtchString(arr);printf("%s",arr);return 0;}#define _CRT_SECURE_NO_WARNINGS 1//输入一个整数数组,实现一个函数,来调整数组中数字的顺序,//使所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分#include<stdio.h>/*void Sort(int *arr,int sz){int i=0;int j=sz-1;for(i=0;i!=j;i++){if(arr[i]%2!=0)continue;else{int t=arr[i];arr[i]=arr[j];arr[j]=t;if(arr[j]%2==0)j--;i--;}}}int main(){int arr[]={1,2,3,4,5,6};int i=0;int sz=sizeof(arr)/sizeof(arr[0]);Sort(arr,sz);for(i=0;i<sz;i++){printf("%d ",arr[i]);}return 0;}//在杨氏矩阵中查找一个数字知否存在#include<stdio.h>#define ROW 3#define COL 3int Find_Number(int arr[ROW][COL],int key){int i=0;int j=3;while((i<ROW)&&(COL>=0)){if(key>arr[i][j]){i=i+1;}else{if(key<arr[i][j]){j=j-1;}else{return arr[i][j];break;}}}return -1;}int main(){int i=0;int j=0;int key=0;int arr[ROW][COL];int ret=0;for(i=0;i<ROW;i++){for(j=0;j<COL;j++){arr[i][j]=i+j+1;printf("%3d ",arr[i][j]);}printf("\n");}printf("请输入一个数字:>");scanf("%d",&key);ret=Find_Number(arr,key);if(ret==-1){printf("没找到\n");}else{printf("找到啦\n");}return 0;}*/static void swap(int*x,int*y){*x^=*y;*y^=*x;*x^=*y;}void Sort(int *arr,int sz){int start=0;int end=sz-1;while(start<end){while(start<end&&arr[start]&1){start++;}while(end>start&&!(arr[end]&1)){end--;}if(start<end){swap(&arr[start],&arr[end]);start++;end--;}else{break;}}}int main(){int arr[]={1,2,3,4,5,6,7,8};int sz=sizeof(arr)/sizeof(arr[0]);int i=0;Sort(arr,sz);for(;i<sz;i++){printf("%d ",arr[i]);}return 0;}//输入一个整数数组,实现一个函数,来调整数组中数字的顺序,//使所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分#include<stdio.h>/*void Sort(int *arr,int sz){int i=0;int j=sz-1;for(i=0;i!=j;i++){if(arr[i]%2!=0)continue;else{int t=arr[i];arr[i]=arr[j];arr[j]=t;if(arr[j]%2==0)j--;i--;}}}int main(){int arr[]={1,2,3,4,5,6};int i=0;int sz=sizeof(arr)/sizeof(arr[0]);Sort(arr,sz);for(i=0;i<sz;i++){printf("%d ",arr[i]);}return 0;}//在杨氏矩阵中查找一个数字知否存在#include<stdio.h>#define ROW 3#define COL 3int Find_Number(int arr[ROW][COL],int key){int i=0;int j=3;while((i<ROW)&&(COL>=0)){if(key>arr[i][j]){i=i+1;}else{if(key<arr[i][j]){j=j-1;}else{return arr[i][j];break;}}}return -1;}int main(){int i=0;int j=0;int key=0;int arr[ROW][COL];int ret=0;for(i=0;i<ROW;i++){for(j=0;j<COL;j++){arr[i][j]=i+j+1;printf("%3d ",arr[i][j]);}printf("\n");}printf("请输入一个数字:>");scanf("%d",&key);ret=Find_Number(arr,key);if(ret==-1){printf("没找到\n");}else{printf("找到啦\n");}return 0;}*/static void swap(int*x,int*y){*x^=*y;*y^=*x;*x^=*y;}void Sort(int *arr,int sz){int start=0;int end=sz-1;while(start<end){while(start<end&&arr[start]&1){start++;}while(end>start&&!(arr[end]&1)){end--;}if(start<end){swap(&arr[start],&arr[end]);start++;end--;}else{break;}}}int main(){int arr[]={1,2,3,4,5,6,7,8};int sz=sizeof(arr)/sizeof(arr[0]);int i=0;Sort(arr,sz);for(;i<sz;i++){printf("%d ",arr[i]);}return 0;}