美文网首页
傻逼快看

傻逼快看

作者: Micason | 来源:发表于2016-07-01 20:29 被阅读57次
    #include  <stdio.h>
    void NONO();
    int fun(char  *s)
    {
        int n=0;
        char *p;//很重要。
            for(p=s;*p!='\\0';p++)//全局变量p扫描了整个字符串;
            if((*p>='0')&&(*p<='9'))
                n++;
        return n;
       }
    
    main()
    {  char *s="2def35adh25  3kjsdf 7/kj8655x";
       printf("%s\\n",s);
       printf("%d\\n",fun(s));
       NONO();
    }
    

    2.确定单词的个数。查找指定的字符。

    #include<string.h>
    #include<stdio.h>
    #define N 80
    int fun(char *s)
    {
      int flag=0;
      int num=0;
      char *p;
      for(p=s;*p!='\\0';p++)//还是和上面的一样,遍历全部的内容哦。
          if(*p==' ') flag=0;
          else if(flag==0)
          {
              flag=1;
              num++;
          }
          return num;
    }
    void main()
    { 
      FILE *wf;
      char line[N]; 
      int num=0;
      printf("Enter a string:\\n "); 
      gets(line);
      num=fun(line);
      printf("The number of word is:%d\\n\\n ",num);
    
    

    3.字符串的逆置

    #include <string.h>
    #include <conio.h>
    #include <stdio.h>
    #define N 81
    void fun(char*s)
    {
        char ch;
        int i,m,n;
        i=0;
        m=n=strlen(s)-1;
        /*将第i个和倒数第i个数互换,但循环的次数为数组长度的一半*/
        while(i<(n+1)/2)
        {
            /*使用中间变量叫唤*/
            ch=s[i];
            s[i]=s[m];
            s[m]=ch;
            i++; m--;//算法,第一个和最后一个换。
    
    }
    
    main()
    {
         char a[N];
         FILE *out;
         printf("Enter a string:");
         gets(a);
         printf("The  original string is:");
         puts(a);
         fun(a);
         printf("\\n");
         printf("The string after modified:");
         puts(a);
         strcpy(a,"Hello World!");
         fun(a);
         /******************************/
         out=fopen("out.dat","w");
         fprintf(out,"%s",a);
         fclose(out);
         /******************************/
    }
    
    

    4.字符串的连接

    #include  <stdio.h>
    #define    N    20
    void NONO();
    void  fun( char  *a , char  *s)
    {
        while(*s!='\\0')
        {   *a=*s;
            a++;
            s++;
        }
        *a='\\0';
    }
    
    main()
    {  char  s1[N],  *s2="abcdefghijk";
       fun( s1,s2);
       printf("%s\\n", s1);
       printf("%s\\n", s2);
       NONO();
    }
    
    

    要将s所指的字符串存入a所指的字符串中,程序要求不能使用系统提供的字符串函数,本题可以使用循环语句,依次取出a所指字符串中的元素,将其存入s所指的字符串中,最后为s所指的字符串添加结束标识'\0'。
    5。
    连接aa,bb,ccc;

    #include <stdio.h>
    #include <conio.h>
    #define M 3
    #define N 20
    void fun(char a[M][N],char *b)
    {
        int i,j,k=0;
      for(i=0;i<M;i++)                   /*将字符串数组中的M个字符串,按顺序存入一个新的字符串*/
         for(j=0;a[i][j]!='\\0';j++)
            b[k++]=a[i][j];
      b[k]='\\0';             /*在字符串最后加上字符串结束标记符*/  
    //本程序中第1个for循环的作用是对二维数组行的控制,第2个循环的作用是从同一
      //行中取出字符并存放到一维数组b中,语句是b[k++]=a[i][j];
      
    }
    void main()
    { 
      FILE *wf;
      char w[M][N]={"AAAA", "BBBBBBB", "CC"},i;
      char a[100]={ " ##############################"};
      printf("The string:\\n ");
      for(i=0;i<M;i++) 
         puts(w[i]);
      printf("\\n ");
      fun(w,a);
      printf("The A string:\\n ");
      printf("%s ",a);
      printf("\\n\\n ");
    
    

    6.連接函數
    、、、cpp

    include<stdio.h>

    include<string.h>

    void mystrcat(char[], char[]);
    int main()
    {
    char c1[80];
    char c2[80];
    gets(c1);
    gets(c2);
    mystrcat(c1,c2);
    puts(c1);
    return 0;
    }
    void mystrcat(char dst[], char str[])
    {
    int i,j;
    j=strlen(dst);
    for(i=0;i<strlen(dst);)
    dst[j++]=str[i++];
    dst[j]='\\\\0';
    }

    5结构体求单项平均值。
    ```cpp
    #include <stdio.h>
    #define   N   8
    typedef  struct
    {  char  num[10];
       double  s[N];
       double  ave;
    } STREC;
    
    void  fun(STREC *a)
    {
    int i;
      a->ave=0.0;
      for(i=0;i<N;i++)
         a->ave=a->ave+a->s[i];  /*求各门成绩的总和*/
       a->ave/=N;                        /*求平均分*/
    
    
    }
    
    main()
    {  STREC  s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
       int  i;
       void NONO (  );
       fun( &s );
       printf("The %s's student data:\\n", s.num);
       for(i=0;i<N; i++)
         printf("%4.1f\\n",s.s[i]);
       printf("\\nave=%7.3f\\n",s.ave);
       NONO();
    }
    

    6.结构体排序

    
    #include <stdio.h>
    #define   N   16
    typedef  struct
    {  char  num[10];
       int   s;
    } STREC;
    void  fun( STREC  a[] )
    {
       int i,j;
       STREC t;
       for(i=1;i<N;i++)
           for(j=0;j<N-1;j++)
               if(a[j].s<a[j+1].s)
               {t=a[j];
               a[j]=a[j+1];
               a[j+1]=t;}
    
    }
    main()
    {  STREC  s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},
            {"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},
            {"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
            {"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}};
       int  i;FILE *out ;
       fun( s );
       printf("The data after sorted :\\n");
       for(i=0;i<N; i++)
       {  if( (i)%4==0 )printf("\\n");
          printf("%s  %4d  ",s[i].num,s[i].s);
       }
       printf("\\n");
       out = fopen("out.dat","w") ;
       for(i=0;i<N; i++)
       {  if( (i)%4==0 && i) fprintf(out, "\\n");
          fprintf(out, "%4d  ",s[i].s);
       }
       fprintf(out,"\\n");
       fclose(out) ;
    }
    

    7.结构体排序//并传入数组;

    #include <stdio.h>
    #define   N   8
    typedef  struct
    {  char  num[10];
       double  s;
    } STREC;
    double  fun( STREC  *a, STREC *b, int *n )
    {
     int i,j=0;
      double av=0.0;
      for(i=0;i<N;i++)
        av=av+a[i].s;
      av=av/N;                 /*求平均值*/
      for(i=0;i<N;i++)
        if(a[i].s<av) b[j++]=a[i];/*将低于平均值的学生记录存入结构体b中*/
      *n=j;          /*指针传回低于平均值的学生人数*/
      return av;     /*返回平均值*/
    
    }
    
    main()
    {  STREC  s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
                    {"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87}};
       STREC  h[N],t;FILE *out ;
       int  i,j,n;  double  ave;
       ave=fun( s,h,&n );
       printf("The %d student data which is lower than %7.3f:\\n",n,ave);
       for(i=0;i<n; i++)
         printf("%s  %4.1f\\n",h[i].num,h[i].s);
       printf("\\n");
       out = fopen("out.dat","w") ;
       fprintf(out, "%d\\n%7.3f\\n", n, ave);
       for(i=0;i<n-1;i++)
         for(j=i+1;j<n;j++)
           if(h[i].s>h[j].s) {t=h[i] ;h[i]=h[j]; h[j]=t;}
       for(i=0;i<n; i++)
         fprintf(out,"%4.1f\\n",h[i].s);
       fclose(out);
    }
    

    8

    
    #include<stdio.h>
    #include<string.h>
    #include<conio.h>
    #include<stdlib.h>
    #define N 10
    typedef struct ss
    { char num[10]; 
      int s;
    } STU;
    fun(STU a[], STU *s)
    {
      int i;
      *s=a[0];           /*先认为第1个值最小*/
      for(i=0;i<N;i++)   /*如果在循环的过程中再发现比第1个值更小的则赋给*s*/
        if(s->s>a[i].s)
          *s=a[i];
    
    }
    void main()
    { 
      FILE *wf;
      STU a[N]={{ "A01",81},{ "A02",89},{ "A03",66},{ "A04",87},{ "A05",77},
      { "A06",90},{ "A07",79},{ "A08",61},{ "A09",80},{ "A10",71}},m;
      int i;
      system("CLS");
      printf("*****The original data*****\\n");
      for(i=0;i<N;i++) 
        printf("No=%s Mark=%d\\n", a[i].num,a[i].s);
      fun(a,&m);
      printf("*****THE RESULT*****\\n");
      printf("The lowest :%s, %d\\n",m.num,m.s);
    /******************************/
      wf=fopen("out.dat","w");
      fprintf(wf,"%s, %d",m.num,m.s);
      fclose(wf);
    /*****************************/
    }
    
    

    相关文章

      网友评论

          本文标题:傻逼快看

          本文链接:https://www.haomeiwen.com/subject/kgtqjttx.html