🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ###(1)分类 对输入字符串进行分类输出。输入类型为数字和字符。 第一行为字符串长度 第二行为对应字符串 输出分为两行,第一行输出数字,第二行输出字符。 输入样例: 12 12r4w2221qws 输入样例: 1242221 rwqws ``` #include<stdio.h> #include<string.h> int main(void){ int i,n; int j=0,k=0; char a[100]; char sz[100];//数字 char zm[100];//字母 scanf("%d",&n);//输入字符串长度 scanf("%s",a);//输入字符串 for(i=0;i<n;i++){ if(a[i]>='0'&&a[i]<='9'){ sz[j]=a[i]; j++; } else if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z'){ zm[k]=a[i]; k++; } } for(i=0;i<j;i++){ printf("%c",sz[i]); } printf("\n"); for(i=0;i<k;i++){ printf("%c",zm[i]); } return 0; } ``` ### (2)找出矩阵中的字符 给定一个n*n的数字矩阵,其中有部分字符,请将其找出,并将位置和值进行输出。 输入样例: 3 1 4 7 a 6 4 4 b 9 输出样例: 1 0 a 2 1 b ``` #include <stdio.h> #include <string.h> int main(void) { int number,n=0,i=0; int x=0; int y=0; int flag=0; scanf("%d",&number); char a[number+1][10]; while(n<=number) { gets(a[n]); n++; } n=1; while(n<=number) { x=n-1; for(i=0;i<strlen(a[n]);i++) { if(a[n][i] == ' ') { y++; if(flag == 1) { flag=0; printf("\n"); } } if(flag == 1) { printf("%c",a[n][i]); } if((a[n][i]<'0' || a[n][i] > '9') && a[n][i]!=' ' && flag==0) { flag = 1; printf("%d %d %c",x,y,a[n][i]); } } y=0; n++; } } ``` ### (3)矩阵翻转 给定一个矩阵,请输出其转置矩阵。 输入样例: 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出样例: 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 ``` #include <stdio.h> int main(void){ int n,i,j; scanf("%d",&n); int a[100][100]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ scanf("%d",&a[i][j]); } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf("%d ",a[j][i]); } printf("\n"); } } ``` ### (4)求和 给定一串数字,其中用“.”分割,对其进行求和并输出。 输入样例: 14 12.23.43.12.34 输出样例: 124 ``` #include<stdio.h> #include<malloc.h> int main() { int i=0,n,m=0; int sum=0; char* str; scanf("%d",&n); str=(char *)malloc(sizeof(char)*n); scanf("%s",str); for(i=0;str[i]!='\0';i++) { if(str[i]!='.') { m=(str[i]-'0')*10+str[i+1]-'0'; i++; sum=sum+m; } } printf("%d\n",sum); } ```