C语言第九次作业练习
2017-04-29 23:54
417 查看
以下程序教材基于 谭浩强C程序设计(第四版)
第1题 教材P.218习题4。
第2题 教材P.218习题5。
第3题 教材P.218习题6。
第4题 教材P.218习题9。
第5题 教材P.218习题11。规定输入的10个字符以字符数组名作为函数形参的形式传递给排序函数。
第6题 编写函数sort,用选择法对输入的10个整数按有小到大顺序排列。
第1题 教材P.218习题4。
# include<stdio.h> int array[3][3]; int main(void) { void convert(int array[3][3]); int i,j; printf("请输入3*3矩阵:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&array[i][j]); } printf("\n"); printf("您输入的矩阵为:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%-3d",array[i][j]); printf("\n"); } printf("\n"); convert(array); printf("该矩阵的转置为:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%-3d",array[i][j]); printf("\n"); } printf("\n"); return 0; } void convert(int array[3][3]) { int i,j,t; for(i=0;i<3;i++) for(j=i+1;j<3;j++) { t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } }
第2题 教材P.218习题5。
# include<stdio.h> # include<string.h> int main(void) { void fanxu(char str[]); char str[100]; printf("请输入一个字符串:\n"); scanf("%s",str); fanxu(str); printf("输出反序字符串:\n"); printf("%s",str); printf("\n"); return 0; } void fanxu(char str[]) { char x; int i,j; j=strlen(str); for(i=0,j;i<(strlen(str)/2);i++,j--) { x=str[i]; str[i]=str[j-1]; str[j-1]=x; } }
第3题 教材P.218习题6。
# include<stdio.h> void link(char a[],char b[]) { int i=0,j=0; while(a[i++]!='\0'); i--; while(b[j]!='\0') { a[i++]=b[j++]; } a[i]='\0'; } int main(void) { char a[100],b[100]; printf("请输入第一个字符串:\n"); gets(a); printf("请输入第二个字符串:\n"); gets(b); link(a,b); printf("连接后的字符串为:\n"); puts(a); return 0; }
第4题 教材P.218习题9。
# include<stdio.h> int zimu,shuzi,space,others; void tongji(char str[]) { int i; for(i=0;str[i]!='\0';i++) { if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z') zimu++; else if(str[i]>='0'&&str[i]<='9') shuzi++; else if(str[i]==' ') space++; else others++; } } int main(void) { char a[100]; printf("请输入字符串:\n"); gets(a); zimu=shuzi=space=others=0; tongji(a); printf("字母:%d\n数字:%d\n空格:%d\n其他字符:%d\n",zimu,shuzi,space,others); return 0; }
第5题 教材P.218习题11。规定输入的10个字符以字符数组名作为函数形参的形式传递给排序函数。
# include<stdio.h> char str[10]; void paixu(char str[]) { int i,j; char t; for(j=1;j<10;j++) for(i=0;(i<10-j)&&(str[i]!='\0');i++) if(str[i]>str[i+1]) { t=str[i]; str[i]=str[i+1]; str[i+1]=t; } } int main(void) { int x; printf("请输入10个字符:\n"); scanf("%s",str); paixu(str); printf("字符由小到大排序为:\n"); for(x=0;x<10;x++) printf("%c",str[x]); printf("\n"); return 0; }
第6题 编写函数sort,用选择法对输入的10个整数按有小到大顺序排列。
# include<stdio.h> char str[10]; void sort(char str[]) { int i,j,k=0,t; for(i=0;i<9;i++) { k=i; for(j=i+1;j<10;j++) if(str[k]>str[j]) { k=j; } if(k!=i) { t=str[k]; str[k]=str[i]; str[i]=t; } } } int main(void) { int i; printf("请输入10个整数:(中间不需要隔开):\n"); scanf("%s",str); sort(str); printf("升序排列为:\n"); for(i=0;i<10;i++) printf("%c",str[i]); printf("\n"); return 0; }