1、输入三个整数,按照从小到大顺序输出
1 #include<stdio.h> 2 int main() 3 { 4 void swap(int *p1,int *p2); 5 int n1,n2,n3; 6 int *p1,*p2,*p3; 7 printf("input three integer n1,n2,n2:"); 8 scanf("%d,%d,%d",&n1,&n2,&n3); 9 p1=&n1; 10 p2=&n2; 11 p3=&n3; 12 if(n1>n2) swap(p1,p2); 13 if(n1>n3) swap(p1,p3); 14 if(n2>n3) swap(p2,p3); 15 printf("Now the order is:%d %d %d ",n1,n2,n3); 16 return 0; 17 } 18 void swap(int *p1,int *p2) 19 { 20 int p; 21 p=*p1; 22 *p1=*p2; 23 *p2=p; 24 }
2、输入三个字符串,按照从小到大输出
#include<stdio.h> #include<string.h> #define M 100 int main() { void swap(char *,char *); char str1[M],str2[M],str3[M]; printf("input three line: "); gets(str1); gets(str2); gets(str3); if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); printf("Now the order is: "); printf("%s,%s,%s ",str1,str2,str3); return 0; } void swap(char *p1,char *p2) { char p[M]; strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p); }
3、
#include<stdio.h> int main() { void input(int *); void max_min_value(int *); void output(int *); int number[10]; input(number); max_min_value(number); output(number); return 0; } void input(int *number) { int i; printf("input 10 numbers:"); for(i=0;i<10;i++) scanf("%d",&number[i]); } void max_min_value(int *number) { int *max,*min,*p,temp; max=min=number; for(p=number+1;p<number+10;p++) { if(*p>*max) max=p; else if(*p<*min) min=p; temp=number[0];number[0]=*min;*min=temp; if(max=number) max=min; temp=number[9];number[9]=*max;*max=temp; } } void output(int *number) { int *p; printf("Now they are:"); for(p=number;p<number+10;p++) printf("%d ",*p); printf(" "); }
4、移动m个位置
#include<stdio.h> int main() { void move(int [20],int,int); int number[20],n,m,i; printf("how many numbers?"); scanf("%d",&n); printf("input %d numbers: ",n); for(i=0;i<n;i++) scanf("%d",&number[i]); printf("how many place you want move?"); scanf("%d",&m); move(number,n,m); printf("now they are: "); for(i=0;i<n;i++) printf("%d ",number[i]); printf(" "); return 0; } void move(int array[20],int n,int m) { int *p,array_end; array_end=*(array+n-1); for(p=array+n-1;p>array;p--) *p=*(p-1); *array=array_end; m--; if(m>0) move(array,n,m); }
5、n个人围成一圈,顺序排号,从第一个人开始报数,凡是报到3的人出圈子,问最后留下来的是原来的第几号
#include<stdio.h> int main() { int i,k,m,n,num[50],*p; printf(" input number of person: n="); scanf("%d",&n); p=num; for(i=0;i<n;i++) *(p+i)=i+1; //从1到n编号 i=0; //i为每次循环时计数变量 k=0; //k为123报数时计数变量 m=0; //m为退出人数 while(m<n-1) { if(*(p+i)!=0) k++; if(k==3) { *(p+i)=0; k=0; m++; } i++; if(i==n) i=0; //报数到尾后i恢复为0 } while(*p==0) p++; printf("the last number is%d ",*p); return 0; }
6、写一个函数,求一个字符串长度。
#include<stdio.h> int main() { int length(char *p); int len; char str[20]; printf("input string :"); scanf("%s",str); len=length(str); printf("the length of string is%d ",len); return 0; } int length(char *p) { int n; n=0; while(*p!='