欢迎光临散文网 会员登陆 & 注册

chaoscrow111

2023-06-26 19:56 作者:cakl醋  | 我要投稿

111非排序字符串

;;;

过滤字符串

#include <stdio.h>

#include <string.h>

#include <ctype.h>

int isident( char s[] )

{

  int i;

  for ( i=0; s[i]!='\0'; i++ )

    if ( s[i]!= '_' && !isalnum(s[i]))

      return 0;

  if (isdigit(s[0]))

    return 0;

  return 1;

}

int main()

{

  char s[][10] = { "a%1", "a12", "aaa", "$ss", "1sss" };

  int i, j=0;

  for ( i=0; i<5; i++ )

    if (isident(s[i]))

      strcpy( s[j++], s[i] );

  for (i=0; i<j; i++ )

    printf("%s ", s[i]);

  return 0;

}

最长字符串

#include<stdio.h>

#include<string.h>

int main()

{

  int f(char a[][100],int n);

  char a[5][100];

  int i,n=5,s;

  for(i=0;i<n;i++)

    gets(a[i]);

  s=f(a,n);

  printf("%s",a[s]);

  return 0;

 } 

 int f(char a[][100],int n)

 {

  int i,s=strlen(a[0]),k;

  for(i=1;i<n;i++)

  {

    if(s<strlen(a[i]))

      k=i;

  }

   return k;

 }

连接字符串

#include<stdio.h>

void strconn(char s1[],char s2[])

{

  int i,j;

  for(i=0;s1[i]!='\0';i++)

    ;

    

  for(j=0;s2[j]!='\0';j++)

    s1[i++]=s2[j];

  s1[i]='\0'; 

}

int main()

{

  char str1[100],str2[50];

  scanf("%s%s",str1,str2);

  strconn(str1,str2);

  puts(str1);

  return 0;

}

实参传来一个字符串

#include<stdio.h>

void fun(char arr[],int *l,int *d,int *s,int *o)

{

  int i;

  for(i=0;arr[i]!='\0';i++)

  {

    if(arr[i]>='A'&& arr[i]<='Z'||arr[i]>='a'&& arr[i]<='z') 

      (*l)++;

    else if(arr[i]>='0'&& arr[i]<='9')

      (*d)++;

    else if (arr[i]==' ')

      (*s)++;

    else

      (*o)++; 

  } 

}

int main()

{

  int letter=0,digit=0,space=0,other=0;

  char str[100];

  gets(str);

  fun(str,&letter,&digit,&space,&other);

  printf("letter:%d\ndigit:%d\nspace:%d\nothers:%d\n",letter,digit,space,other);

  return 0;

}

求字符串长度

#include<stdio.h>

int len(char *p)

{

  int n=0;

  while (*(p++)!='\0') 

    n++;

  return(n);

}

int main() 

{

  char str[20];

  gets(str);

  printf("%d",len(str));

  return 0;

}

复制字符串

#include<stdio.h>

void copystr(char *p1,char *p2,int m){

  int i= m-1,j=0;

  for( ; *(p1+i)!='\0'; i++,j++ )

    *(p2+j) = *(p1+i);

  *(p2+j)='\0';

}

int main (){

  int m;

  char str1[20] = "abcdefg",str2[20];

  scanf("%d",&m);

  copystr(str1,str2,m);

  printf("%s",str2);

  return 0;

}

;;;

222数组与回文

;;;

一维实型数组

#include <stdio.h>

void sum(float a[],float n,float *max,float *min,float *aveg){

  for(int i=0;i<n;i++){

    if(*max<a[i]){

      *max = a[i];

    }

    if(*min>a[i]){

      *min = a[i];

    }

    *aveg = *aveg + a[i];

  }

  *aveg = *aveg / n;

}

int main(){

  int n,i;

  scanf("%d",&n);

  float a[n],max,min,aveg;

  for(i=0;i<n;i++){

    scanf("%f",&a[i]);

  }

  max = min = a[0];

  aveg = 0;

  sum(a,n,&max,&min,&aveg);

  printf("max:%.2f\n",max);

  printf("min:%.2f\n",min);

  printf("aveg:%.2f\n",aveg);

}

找出数组中的最小数

#include <stdio.h>

#include <math.h>

int qmin(double arr[], int n) {

  int min=arr[0],j;

  for(j=1; j<n; j++)

    if(min>arr[j])

      min=arr[j];

  return min;

}

int main() {

  double y[50];

  int i;

  for(i=0; i<50; i++)

    y[i]=600*sin(i*0.16);

  printf("min=%d",qmin(y,50));

  return 0;

}

字符是否是回文

#include<stdio.h>

#include<string.h>

int fun(char *str)

{

  int i, j, k = 1;

  for(i=0,j=strlen(str)-1; i<j; i++,j--) 

    if (str[i]!= str[j])

      return 0;

  return 1; 

}

int main() {

  char str[100];  

  gets(str);

  if (fun(str))

    printf("yes");

  else

    printf("no");  

  return 0;

}

回文数

#include<stdio.h>

int hws(int x)

{int sum=0,t;

 t=x;

 while(x)

 {sum=10*sum+x%10;

 x/=10;}

 if(sum==t) return 1;

 else return 0;


}

int main() {

int i;

for(i=1;i<=300;i++)

if(hws(i)==1&&hws(i*i)==1) 

   printf("%d ",i);

}

;;;

333排序

;;;


字符串排序

#include<stdio.h>

#include<string.h> 

void sort(char **p) {

  int i,j;

  char *temp;

  for (i=0; i<4; i++) {

    for (j=0; j<4-i; j++) {

      if (strcmp(*(p+j),*(p+j+1))>0) {

        temp=*(p+j);

        *(p+j)=*(p+j+1);

        *(p+j+1)=temp;

      }

    }

  }

}

int main() {

  int i;

  char str[5][20],*pstr[5];

  for(i=0; i<5; i++)

  {   pstr[i]=str[i];

    scanf("%s",str[i]); 

  }

  sort(pstr);

  for (i=0; i<5; i++)

    printf("%s ",pstr[i]);

  return 0;

}

数组反序输出

#include<stdio.h>

#define N 10

void swap(int* a)

{

  int temp = 0;

  int i;

  for (i=0; i<N/2; i++)

  {

    temp = *(a+i);

    *(a+i) = *(a+N-1-i);

    *(a+N-1-i) = temp;

  }

}

int main()

{

  int i, a[N] = { 0 };

  for (i=0; i<N; i++)

     scanf("%d", a+i);

  swap(a);  

  for (i= 0; i<N; i++)

    printf("%d ", *(a+i));

  return 0;

指针方法排序

#include<stdio.h>

int main() {

  void sort(int *x,int n);

  int i,*p,a[10];

  p=a;

  for(; p<a+10; p++)

    scanf("%d",p);

  sort(a,10);

  for(p=a; p<a+10; p++) 

    printf("%d ",*p);

  return 0;

}

void sort(int *x,int n) {

  int i,j,t;

  for(i=0; i<n-1; i++) 

    for(j=0; j<n-i-1; j++)

      if(*(x+j)<*(x+j+1))

      {

        t=*(x+j);

        *(x+j)=*(x+j+1);

        *(x+j+1)=t;

      }

}

字符串按字母顺序输出

#include<stdio.h>

#include<string.h>

void fun(char *a[],int n)

{

 int i, j;

 char *t;

 for(i=0; i<n-1; i++) 

  for(j=i+1; j<n; j++)

    if( strcmp(*(a+i),*(a+j))>0)

    {   t=*(a+i);

            *(a+i)=*(a+j);

            *(a+j)=t; 

        } 

}

int main() {

 char *a[] = { "Follow me", "BASIC", "Great Wall", "FORTRAN", "Computer design" };

 int i;

 fun(a,5);

 for(i=0; i<5; i++)

  printf("%s\n",a[i]);

 return 0;

}

反序存放

#include <stdio.h>

#include <string.h>

void inverse(char str[] )

{

  char  t;

  int i, j;

  for (i=0, j= strlen(str); i<(strlen(str)/2); i++, j-- )

  {

    t = str[i];

    str[i]=str[j-1];

    str[j-1]=t;

  }

}

int main()

{

  char str[100];

  scanf("%s", str);

  inverse(str);

  printf("%s\n", str);

  return(0);

}

字符排序

#include <stdio.h>

#include <string.h>

void fun(char str[][10], int n)

{

 int i, j;

 char t[10];

 for (i=0; i<9; i++ )

  for (j=0; j<9-i; j++)

   if ( strcmp(str[j], str[j+1])>0)

   {

    strcpy(t, str[j]);

    strcpy(str[j], str[j+1]);

    strcpy(str[j+1], t);

   }

}

int main() {

 char str[][10] = {"abc", "edf", "ghi", "jkl", "mno", "pqr", "stu", "vwx", "yz1", "234"};

 int i;

 fun(str, 10);

 for (i=0; i<10; i++ )

    printf("%s ", str[i]);

 return 0;

}

冒泡

#include<stdio.h>

#define N 10

int main() 

{ void sort(char str[]);

  char str[N]={'1','a','3','x','v','6','w','8','9','z'};

  int i;

  sort(str);   

  for (i=0; i <N; i++)

    printf("%c ",str[i]);

  printf("\n");

  return 0;

}

void sort(char str[]) {

  int i,j;

  char t;

  for(j=0; j<N-1; j++)

    for (i=0; i<N-j-1; i++)

      if(str[i]>str[i+1]) {

        t=str[i];

        str[i]=str[i+1];

        str[i+1]=t;

      }

}

;;;

444杂项

;;;

找出不及格

#include <stdio.h>

int fun(float *p,int n) {

  int i;

  for(i=0; i<n; i++) 

    if(*(p+i)< 60) 

      return 1;

  return 0;

}

int main() {

  float a[][4]= {{60,70,80,90},{56,89,67,88},{34,78,90,66}};

  int i,j;

  for(i=0; i<3; i++) 

    if(fun(a[i],4)){

      printf("No.%d score:",i);

      for(j=0; j<4; j++)

        printf("%.2f  ",a[i][j]);  //两个空格

      printf("\n"); 

    }

  return 0;

}

两个整数的最大公约数和最小公倍数

#include <stdio.h>

int main() 

{

  int hcf(int,int);

  int lcd(int,int);

  int u,v,h,l;

  scanf("%d %d",&u,&v);

  h=hcf(u,v);

  printf("hcf=%d\n",h);

  l=lcd(u,v);

  printf("lcd=%d",l);

  return 0;

}

int hcf(int m,int n) //最大公约数 

  int t;

  t=m%n;

  while(t)

  {

    m=n;

    n=t;

    t=m%n;

  } 

  return n; 

}

int lcd(int m,int n) //最小公倍数 

{

  int s;

  s=m*n/hcf(m,n);

  return s;

}

年、月、日

#include  <stdio.h>

int main() 

{

  int sum_day(int month,int day);

  int leap(int year);

  int year,month,day,days;

  scanf("%d %d %d",&year,&month,&day);

  days=sum_day(month,day);              

  if(leap(year)&&month>=3)                

    days=days+1;

  printf("%d",days);

  return 0;

}

int sum_day(int month,int day) {      

  int day_tab[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};

  int i;

  for (i=1; i <month; i++)

    day+=day_tab[i];     

  return(day);

}                        

int leap(int year) {

  int leap;

  leap=year%4==0&&year%100!=0||year%400==0;

  return(leap);

}

判断一个整数是否既是5又是7的整倍数

#include<stdio.h>

int main() {

  int fun(int);

  int a;

  scanf("%d",&a);

  if(fun(a))

    printf("yes");

  else

    printf("no");

  return 0;

}

int  fun(int x) {

  if(x%5==0&&x%7==0) 

    return 1;

  else  

    return 0;

}

多项式

#include <stdio.h>

int dxs(int x, int n) {

  if (n==0) 

    return 1;

  else if (n==1) 

    return x;

  else

    return (2*n-1)*dxs(x,n-1)-(n-1)*dxs(x,n-2)/n;

}


int main()

{

  int n, x;

  scanf("%d %d",&n, &x);

  printf("%d",dxs(x, n));

  return 0;

}

;;;

555函数与阶乘

;;;

编写函数int fun删除a指向

#include<stdio.h>

int fun(char a[])

{

  int i,j=0,n=0;

  for(i=0;a[i]!='\0';i++)

    if(a[i]>='0'&&a[i]<='9')

      n++;

    else

      a[j++]=a[i];

  a[j]='\0';

  return n;

}

int main()

{

  char a[100];

  int n,i;

  gets(a);

  n=fun(a);

  printf("%d:%s",n,a);

  return 0;

}

通用函数avernum

#include<stdio.h>

#include<math.h>

double avernum(double x[],int n) {

  int i;

  double aver,s=0;

  for(i=0; i<n; i++)

    s=s+x[i];

  aver=s/100;

  return aver;

}

int main() {

  double x[100],aver,m=0;

  int i;

  for(i=0; i<100; i++)

    x[i]=200*(cos(i*0.875));

  aver=avernum(x,100);

  printf("aver=%.6lf\n",aver);

  for(i=0; i<100; i++)

    if(x[i]>aver)

      m++;

  printf("m=%.6lf",m);

  return 0;

}

字符比较函数

#include<stdio.h>

int strcmp(char *p,char *q) {

  for(;*p==*q;p++,q++)

    if (*p=='\0') return 0;

  return (*p-*q);

}

int main() {

  int m;

  char str1[20],str2[20];

  scanf("%s",str1);

  scanf("%s",str2);

  m=strcmp(str1,str2);

  printf("%d",m);

  return 0;

}

阶乘

#include<stdio.h>

int fun(int i) {

  if(i==1)

    return 1;

  else

    return fun(i-1)*i;

}

int main() {

  int i,sum=0;

  for(i=1; i<=10; i++)

    sum+=fun(i);

  printf("%d",sum);

  return 0;

}

递归法求n!

#include<stdio.h>

double fun(int n){

  if(n==0 || n==1) return 1;

  else

    return n*fun(n-1); 

}

int main() {

int n;

scanf("%d",&n);

printf("%.0lf",fun(n));

return 0;

}

;;;


chaoscrow111的评论 (共 条)

分享到微博请遵守国家法律