赞
踩
- #include<stdio.h> //字符串长度
- #include<string.h>
- int len(char *sp){
- int m,n=0,i,j;
- m=strlen(sp); //首字母就代表这个地址
- for(i=0;i<m;i++){
- if(sp[i]==' '){
- n++;
- }
- }
- return m-n;
-
- }
- int main(){
- char sp[100];
- gets(sp);
- int t=len(sp); //不需要加&,因为数组字母就代表字符串地址
- printf("%d",t);
-
- }
- #include<stdio.h> //循环移动
- #include<stdlib.h>
- void ringShift(int *a,int n,int k){
- int i,j,b[n],c[n];
- for(i=0;i<n-k;i++){
- b[i]=a[i];
- }for(i=n-k;i<n;i++){
- c[i]=a[i];
- }
- for(i=n-k;i<n;i++){
- printf("%d ",c[i]);
- }for(i=0;i<n-k;i++){
- printf("%d ",b[i]);
- }
- }
- int main(){
- int n,k,i,j;
- scanf("%d",&n);
- int *p=(int *)malloc(n*sizeof(int));
- for(i=0;i<n;i++){
- scanf("%d",p+i);
- }
- scanf("%d",&k);
- ringShift(p,n,k);
- }
- #include<stdio.h> //实数的小数
- #include<string.h>
- #include<stdlib.h>
- char *decimal(char *p){
- int i,j=0,t=strlen(p),f=0;
- char *pa=(char *)malloc(110*sizeof(char));
- for(i=0;i<t;i++){
- if(p[i]=='.')
- f=1;
- if(f)
- pa[j++]=p[i];
- }
- pa[j]='\0';
- while(j--){
- if(pa[j]=='0')
- pa[j]='\0';
- else break;
- }
- if(pa[j]=='.')
- return NULL;
- return pa;
- }
- int main(){
- char a[110],*p=NULL;
- scanf("%s",a);
- int t=strlen(a);
- p=decimal(a);
- if(p==NULL)
- printf("No decimal part");
- else printf("0%s",p);
-
- }
- #include<stdio.h> //实数取整
- #include<string.h>
- #include<stdlib.h>
- char *rounding(char *p){
- int i,j,t=strlen(p),k;
- char *pa=(char*)malloc(110*sizeof(char));
- for(i=0;i<t;i++){
- if(p[i]=='.')
- break;
- else pa[i]=p[i];
- }
- pa[i]='\0';
- for(j=0;j<i;j++){
- if(pa[0]=='0'&&pa[1]!='\0'){
- for(k=0;k<i;k++){
- pa[k]=pa[k+1];
- }
- }else if(pa[0]=='0'&&pa[1]=='\0'){
- return pa;
- }
- else break;
- }
- return pa;
- }
- int main(){
- char a[110],*p=NULL;
- scanf("%s",a);
- p=rounding(a);
- printf("%s",p);
-
- }
- #include<stdio.h> //逆序数
- #include<string.h>
- #include<stdlib.h>
- void reverse(char *str){
- int i,j,t=strlen(str),k;
- char *p;
- p=(char *)malloc(110*sizeof(char));
- for(i=t-1;i>=0;i--){
- if(str[i]!='0')
- break;
- }
- int n=i;
- if(str[0]=='-'){
- p[0]='-';
- k=1;
- for(i;i>=1;i--){
- p[k++]=str[i];
- }
- for(j=n+1;j<t;j++){
- p[k++]=str[j];
- }
- p[k]='\0';
- }else{
- k=0;
- for(i;i>=0;i--){
- p[k++]=str[i];
- }
- for(j=n+1;j<t;j++){
- p[k++]=str[j];
- }
- p[k]='\0';
- }
- puts(p);
- }
- int main(){
- char *a;
- a=(char*)malloc(sizeof(char)*110);
- gets(a);
- reverse(a);
- }
- #include<stdio.h> //账单
- #include<string.h>
- #include<stdlib.h>
- int main(){
- int n;
- scanf("%d",&n);
- while(n--){
- int m,i,j;
- double sum=0,b;
- char *p=NULL,*a=(char*)malloc(sizeof(char)*200);
- scanf("%d",&m);
- for(i=0;i<m;i++){
- getchar();
- gets(a);
- p=strrchr(a,' ');
- sscanf(p,"%lf",&b);
- sum+=b;
- }
- printf("%.1f\n",sum);
- }
- }
- #include<stdio.h> //大整数
- #include<string.h>
- #include<stdlib.h>
- int cmp(char *a,char *b){
- if(strlen(a)>strlen(b))
- return 1;
- else if(strlen(a)<strlen(b))
- return -1;
- else{
- for(int i=0;i<strlen(a);i++){
- if(a[i]>b[i])
- return 1;
- else if(a[i]<b[i])
- return -1;
- }
-
- }
- return 0;
-
- }
- int main(){
- char a[110],b[110],c[110];
- gets(a);
- gets(b);
- gets(c);
- char *d;
- d=(char*)malloc(110*sizeof(char));
- if(cmp(a,b)==1){
- strcpy(d,a);
- strcpy(a,b);
- strcpy(b,d);
- }
- if(cmp(a,c)==1){
- strcpy(d,a);
- strcpy(a,c);
- strcpy(c,d);
- }
- if(cmp(b,c)==1){
- strcpy(d,b);
- strcpy(b,c);
- strcpy(c,d);
- }
- puts(a);
- puts(b);
- puts(c);
- }
- #include<stdio.h> //最长字符串
- #include<string.h>
- #include<stdlib.h>
- void maxLenStr(char*str[],int n,int *max){
- int i,j,m=0;
- for(i=0;i<n;i++){
- if(strlen(str[i])>strlen(str[m])){
- m=i;
- }
- }*max=m;
-
- }
- int main(){
- char *str[110];
- char a[90];
- int i,j;
- for(i=0;;i++){
- gets(a);
- if(strcmp(a,"****")==0)
- break;
- str[i]=(char*)malloc(sizeof(char)*(strlen(a)+1));
- strcpy(str[i],a);
- }
- int max;
- maxLenStr(str,i,&max);
- printf("%s",str[max]);
- }
- #include<stdio.h> //加密
- #include<string.h>
- #include<stdlib.h>
- void encrypt(char *plain,char *cipher){
- int i,j=0,t=strlen(plain);
- for(i=0;i<t;i++){
- cipher[j++]=plain[i]-24;
- }
- int n=strlen(cipher);
- for(i=n-1;i>=0;i--){
- printf("%d%d",cipher[i]%10,cipher[i]/10);
- }
-
- }
- int main(){
- char *p=(char*)malloc(sizeof(char)*200);
- char *a=(char*)malloc(sizeof(char)*500);
- gets(p);
- encrypt(p,a);
-
- }
- #include<stdio.h> //矩阵边界和
- #include<stdlib.h>
- int main(){
- int m,n,i,j;
- scanf("%d%d",&m,&n);
- int *p=(int*)malloc(sizeof(int)*m*n);
- for(i=0;i<m;i++){
- for(j=0;j<n;j++){
- scanf("%d",&p[i*n+j]);
- }
- }
- long long sum=0;
- // for(i=0;i<m;i++){
- // sum+=p[i*n+0]+p[i*n+n-1];
- // }
- // for(j=1;j<n-1;j++){
- // sum+=p[0*n+j]+p[(m-1)*n+j];
- // }
- for(i=0;i<m;i++){
- for(j=0;j<n;j++){
- if((i==0||i==m-1)||(j==0||j==n-1))
- sum+=p[i*n+j];
- }
- }
-
- printf("%lld",sum);
- }
- #include<stdio.h> //密码解密
- #include<string.h>
- #include<stdlib.h>
- void decrypt(char*cipher,char*plain){
- int i,j=0,t=strlen(cipher);
- for(i=0;i<=t-1;i=i+2){
- plain[j++]=(cipher[i]-'0')*10+(cipher[i+1]-'0')+24;
- }
- printf("%s",plain);
- }
- int main(){
- char *a=(char*)malloc(sizeof(char)*200);
- char b[200];
- scanf("%s",a);
- decrypt(a,b);
-
- }
- #include<stdio.h> //矩阵转置
- #include<stdlib.h>
- int main(){
- int m,n,i,j;
- scanf("%d%d",&m,&n);
- int *a=(int*)malloc(sizeof(int)*m*n);
- for(i=0;i<m;i++){
- for(j=0;j<n;j++){
- scanf("%d",&a[i*n+j]);
- }
- }
- for(j=0;j<n;j++){
- for(i=0;i<m;i++){
- printf("%d ",a[i*n+j]);
- }printf("\n");
- }
- }
- #include<stdio.h> //查找最大字符串
- #include<string.h>
- #include<stdlib.h>
- void find(char*name[],int n,int *p){
- int i=0;
- *p=0;
- for(i=0;i<n;i++){
- if(strcmp(name[*p],name[i])<0){
- *p=i;
- }
- }
-
- }
- int main(){
- int *p=NULL,max;
- char a[10],*name[100];
- int i=0,j;
- while(gets(a)){
- if(strcmp(a,"*****")==0)
- break;
- name[i]=(char*)malloc(sizeof(char)*(strlen(a)+1));
- strcpy(name[i],a);
- i++;
- }
- p=&max; //不能省略
- find(name,i,p);
- printf("%s",name[*p]);
- for(j=0;j<i;j++){
- free(name[j]);
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。