作业十
1.拆分实数 #include<stdio.h> void splidfloat(float x,int*intpart,float*fracpart); int main() { float x,f=0; int i=0; float*pf=&f; int*pi=&i; printf("Enter x:"); scanf("%f",&x); splidfloat(x,pi,pf); printf("intpart=%d\nfracpart=%f\n",i,f); return 0; } void splidfloat(float x,int*intpart,float*fracpart) { *intpart=(int)x; *fracpart=x-*intpart; }
3.循环右移 #include<stdio.h> void move(int*x,int n,int m); int main() { int i,m,n; int a[80]; printf("请输入n个整数:"); scanf("%d",&n); printf("请输入移动的长度: "); scanf("%d",&m); for(i=0;i<n;i++) scanf("%d",&a[i]); move(a,n,m); printf("输出移动后的数:"); for(i=0;i<n;i++) printf("%4d",a[i]); printf("\n"); } void move(int*x,int n,int m) { int i,j,k; for(i=1;i<=m;i++){ k=x[n-1]; for(j=n-1;j>0;j--) x[j]=x[j-1]; x[0]=k; } }
6.删除字符
#include<stdio.h> void delchar(char *s,char c); int main(void) { char c; char s[80]; printf("Input the string:"); gets(s); printf("Input a ch:"); scanf("%c",&c); delchar(s,c); printf("result: "); puts(s); return 0; } void delchar(char *s,char c) { int i,j; i=j=0; while(s[i]!='\0') { if(s[i]!=c) { s[j]=s[i]; j++; } i++; } s[j]='\0'; }
7.字符串排序 #include<stdio.h> #include<string.h> int main(void) { int n,i,j,index; char sx[80][80],stemp[80]; printf("Enter n:"); scanf("%d",&n); printf("Input %d strings:",n); for(i=0;i<n;i++) scanf("%s",sx[i]); //每行的基地址// for(i=0;i<n-1;i++){ index=i; for(j=i+1;j<n;j++) if(strcmp(sx[j],sx[index])<0) index=j; strcpy(stemp,sx[i]); strcpy(sx[i],sx[index]); strcpy(sx[index],stemp); } printf("after sorted: \n"); for(i=0;i<5;i++) printf("%s\t",sx[i]); return 0; }