一、定义一个 3 行 3 列的二位数组,求二维数组 a 中的最大值和最小值。
输出数组,并输出最大值和最小值。
#include <stdio.h> /* 定义一个 3 行 3 列的二位数组,求二维数组 a 中的最大值和最小值。 输出数组,并输出最大值和最小值。 */ int main() { int i,j,x,y,temp,temp1; int min,max; int a[3][3]={17, 45, 2, 57, 90, 13, 75, 8, 34}; printf("输出数组\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%-5d",a[i][j]); } printf("\n"); } min=a[0][0]; max=a[0][0]; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(min>a[i][j]) { min=a[i][j]; } if(max<a[i][j]) { max=a[i][j]; } } } printf("输出最小值:%d,最大值:%d",min,max); return 0; }
二、使用二维数组编程输出如下图像
8
8 8
8 8 8
8 8 8 8
8 8 8 8 8
#include <stdio.h> /* 使用二维数组编程输出如下图像 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 */ int main() { int i,j; int a[5][5]; for(i=0;i<5;i++) { for(j=0;j<=i;j++) { a[i][j]=8; printf("%d ",a[i][j]); } printf("\n"); } return 0; }
三、输入一个字符串,然后将每一个字符打印显示,中间加一个空格。
#include <stdio.h> #include <string.h> #define N 32 /* 输入一个字符串,然后将每一个字符打印显示,中间加一个空格。 */ int main() { int i,len; char str[N],temp; gets(str); len=strlen(str); for(i=len-1;i>=0;i--) { str[2*i]=str[i]; str[2*i + 1]=' '; } str[len*2]='\0'; puts(str); return 0; }
四、进行字符串遍历,实现字符串格式替换。
处理一个字符串"abccdeffghijkvssclmnocpqfrstuvcfwxyz",
将里面的特殊符号转义为表情。
s 转为 ^_^ f 转为 @_@ c 转为 T_T
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 100 /* 进行字符串遍历,实现字符串格式替换。 处理一个字符串"abccdeffghijkvssclmnocpqfrstuvcfwxyz", 将里面的特殊符号转义为表情。 s 转为 ^_^ f 转为 @_@ c 转为 T_T */ int main() { int i,k=0; char a[N],b[N]; gets(a); int len=strlen(a); for(i=0;i<len;i++) { if(a[i]=='c') { b[k++]='T'; b[k++]='_'; b[k++]='T'; // printf("T_T"); } else if(a[i]=='s') { b[k++]='@'; b[k++]='_'; b[k++]='@'; // printf("@_@"); } else if(a[i]=='f') { b[k++]='^'; b[k++]='_'; b[k++]='^'; // printf("^_^"); } else { b[k++]=a[i]; // printf("%c", a[i]); } } printf("%s",b); return 0; }
五、输入 5 字符串,将它们排序后输出。
输入了 5 个字符串:"dead","alex","can","best","effort"
程序最终输出为: alex, best, can, dead, effort
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 10 /* 输入 5 字符串,将它们排序后输出。 输入了 5 个字符串:"dead","alex","can","best","effort" 程序最终输出为: alex, best, can, dead, effort */ int main() { char a[N][N]; char temp[N]; int i,j; for (i = 0; i < 5; i++) { printf("请输入字符串:"); scanf("%s",a[i]); } for(i=0;i<4;i++) { for(j=0;j<4-1;j++) { if(strcmp(a[j],a[j+1])>0) { strcpy(temp,a[j]); strcpy(a[j],a[j+1]); strcpy(a[j+1],temp); } } } for(i=0;i<5;i++) printf("%s ",a[i]); return 0; }
六、去除字符串两端的空格。
用户输入 " i am fine " 则有效的输入是 "i am fine"
#include <stdio.h> #include <string.h> #define N 32 /* 去除字符串两端的空格。 用户输入 " i am fine " 则有效的输入是 "i am fine" */ int main() { int i,x,y,k=0; char a[N],b[N]; gets(a); int len=strlen(a); for(i=0;i<len;i++) { if(a[i]!=' ') { x=i;break; } } for(i=len-1;i>=x;i--) { if(a[i]!=' ') { y=i;break; } } for(i=x;i<=y;i++) { b[k++]=a[i]; } printf("%s",b); printf("\n"); return 0; }