20160131.CCPP体系详解(0010天)

来源:互联网 发布:杭州java培训机构 编辑:程序博客网 时间:2024/05/20 04:49

程序片段(01):Test.c+NewTest.c
内容概要:题目测试

///Test.c#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#define r char S; T R; I N, G, s#define A(P,O) for(P=O; *P; P=U(P))typedef char T[128], *I, p[2400];#define memset  (I)\    memsetvoid*P = strcpy; I Q(); typedef const void*f; int u(f P, f O){    return strncmp((I)P, (I)O, 1);} T g, c = { 127 }; char l, F[6000000]; I U(I P){    r; strncpy(R, P, 2);    s = strchr(        strcpy(P, c), 0)        ; strncpy(P, R, 2); return s;} T q, B, E; I t(I P){    r; qsort(P,        strlen(P), 1, u);    if (s = strstr(P, c))*s = 0; return P;} T a = { 2 }; void D(){    r;    S = 1; strcpy(R, c); t(F);    for (; memset(E, S, l),        (S = strlen(        strcat(R, c))) < *R; t(s))for (s = B;    N = strstr(F, E); s = F)        * memset(N, *c, l) = S;} p H = "(*&,.", k; I j(I P){    r = (I)malloc(        strlen(        strcat(P, "\177 ")));    *strstr(P, c) = 0;    return strcpy(s, P);} int K(f P, f O){ return u(O, P); } voidb(){    qsort(F,        strlen(F), 1, K);} void n(I P){    r; A(P, P){        if (N = strchr(F, *P)); else{            t(F);            b(); memset(B, l, *F); N = F;            while (*strrchr(B, l) = 0,                *P <= (S = strlen(B))){                *memset(E, S, l)                    = *c; strcat(F, E);            } memset(B, 0, S);        } *N = *c;    } D();} void C(I P, I O){    r; A(P, P)A(s, O){        *strrchr(            memset(            strchr(            memset(            strncpy(k, B, 254), l, *P), 0), l, *s), l) = 0;        *q = strlen(k)            ; strcat(F, q);    } D();} T i = "\13<\f="; void o(I P){    A(P, P){        *strrchr(            memset(B, *c, *P), *c)            = 0; memset(B, 0,            *P = strlen(B));    }} int V(f P, f O){ return u(*(I*)P, *(I*)O); } void e(I O){    r; strcpy(H, O)        ; strcpy(R, c); for (;    0 < strncmp(F, H, 1)        ; strcat(R, c))A(s,        H) memset(B, 0,        *s = strlen(        strcat(        memset(B, *c, *s), c))); *k = 0; do{        while            (0 <= strcmp(F, H)){            n(H); b();            *q = strlen(R)                ; strcat(k, q);        }        *strrchr(R, *c) = *B; o(H);    } while (*R);} char d(I P){    if (P = strstr(P, g)){        if ((*g = getchar()) < *i)' ' < *g ? o(g) : d(" ");    }    else P = B; return*P;} I m(I    P){    qsort(P,        strlen(P), 1, K); return*P == *c ? U(P) : P;} void J(I P){    r = m(P);    if (P < s) putchar('-')        ; memset(B, l, *s); do{        *E = *i;        if (N = strchr(s,            *q = strlen(B)))            t(memset(            memcpy(E, i, l), *c,            strspn(N, q)))            ; putchar(*E);        *strrchr(B, *B = l) = 0;    } while        (*B); puts(B)        ; free(P);} I M(){    r = Q(), P, O; while (S = d(".)$")){        N = Q();        G = strcpy(F, B); P = m(s); O = m(N); if (S == ')'){ C(P, O); }        else{            strcpy(F, P); e(O); if (S == '.')G = k; else O = N;        } free(s); G = j(G);        s = strcat(G, P == s == (O == N) ? B : c)            ; free(N);    } return s;} I h(){    r, P, O; for (N = M(); S = d("*,");    N = strcat(s, S ? c : B)){        G = M(); P = m(N); O = m(G); S = O == G == (S == ','); if (P == N == S)        if (strcmp(P, O) < 0)        {            strcpy(F, O); n(P);        }        else{ strcpy(F, P); n(O); S = N < P; }        else{            strcat(                strcpy(F, P), O); D();        }        s = j(F); free(N)            ; free(G);    } return N;} I Q(){    r; if (S = d(","))    if (N = strstr(s = Q(), c))*N = *B;    else strcat(s, c); else if (d("'")){ s = h(); S = d("("); }    else{        strcpy(F, B); while (*q = d(i))        {            strcpy(H, F)                ; memset(                strncpy(F, B, l), S = 1,                strcspn(i, q)); C(H, a);        } s = j(F);    } if (!S){        o(strcpy(F, "tzouby!fssps"))            ; puts(F);    } return s;} int main1(int P, I*O){    qsort(O, P, sizeof*O, V);    l = 1 < P ? strtol(*O, 0, l) : 10; C(H,        i); strcpy(i, F); d(g); while (!d("\377"))for (J(h()); !d("\377\n"); d(g)); return 0;}
///NewTest.c#define  _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h >void main123(){    /*int x, y;    if (x < y)scanf("%d", &x); else scanf("%d", &y);*/    //int i;    //while (!scanf("%d", &i))  //!1    //  getchar();    //abcde<回车>    ////ch = getchar()  //'a'    //char ch;    //                                  //a ,b ,c d, e    //while ((ch = getchar()) == 'e')  //e e e    //{    //  putchar(ch);    //  printf(" * ");    //}    //int x = 5, a = 0, b = 0;    //if (x != (a + b)) printf("x=5\n");    //else printf("a=b=0\n");    //r  ight   ?    //jhiu    //char c;    //c = getchar();    //while ((c = getchar()) != '?')    //  putchar(++c);    //int a, b, c, d, x;    //a = c = 0;    ////b = 1; d = 20;    ////if (a)    ////    d = d - 10;    ////else if (!b)  //else if  (if else配对)    ////    if (!c)x = 15;    ////    else x = 25;    //  switch (a)    //  {    //  case 2:    //      break;    //  }    //    //int  a = 10;    //int b = 20;    //switch (1+a+b)    //{    //case 1:    //  break;    //}    //int n[2] = { 0 }, i, j, k = 2;    //for (i = 0; i < k; i++)    //for (j = 0; j < k; j++) n[j] = n[i] + 1;    //printf("%d\n", n[k]);//n[2]    //int i = 1, j = 1, k = 2;    //j++ || ((k++) &&(i++));//短路效应    ////1 + 3 * 4;    //    //printf("%d,%d,%d\n", i, j, k);    //int a=10;    //int c = 0;    //switch (a)    //{    //case 2:    //  ;    //}    /*double sum = 0.0, x;    for (x = 0.0; x < 3.0; x += 0.1)    sum += x,printf("\n%f",x);    printf("\n x=%f", x);*/    //int a = 1;     //int b = 10;    //do    //{    //  b -= a;    //b=9,a=2   //b=6,a=3  //b=2,a=4  // b=-3  a=5    //  a++;    //} while (b-- < 10);    //printf("a=%d,b=%d", a, b);    //system("pause");        int i, j, k;        for (i = 1; i <= 6; i++)        {            for (j = 1; j <= 20 - 2 * i; j++)                printf(" ");            for (k = 1; k <= i; k++)                printf("%4d", i);            printf("\n");        }        system("pause");}void main124(){    char c;    c = getchar();    //switch必须快语    switch (c)    {    case 0:case 1: printf("%d", c - '0'); break;    default:putchar(c);    }}void main125(){    int a, b; char op;        scanf("%d%d", &a, &b);        scanf("%c", &op);    switch (op)    {    case '+':  printf("%d + %d = %d\n", a, b, a + b); break;    case '-':  printf("%d - %d = %d\n", a, b, a - b); break;        default:printf(""); exit(1);    }}void main126(){    int n, i = 1;  long sum = 0;    printf("输入一个正整数:");    scanf("%d", &n);    while (i < n)        i += 2;    sum += i;    if (n % 2 == 0)   n--;    printf("输出1+3+5+…+%d=%1d\n", n, sum);    system("pause");}void main1215(){    int s, t, a, b;    scanf("%d,%d", &a, &b);    //a=5//b=2    s = 1;    t = 1;    if (a > 0) //作用范围最近的;如果整体的ifelse会嵌套    {        s = s + 1;         /* ① */// s=2        if (a > b)        {            t = s + t;          /* ② */        }        else if (a == b)        {            t = 5;        }        else            t = 2 * s;    }    printf("s=%d,t=%d\n", s, t);    system("pause");}void  main127(){        int a, b, m, n;        scanf("%d%d,\n", &a, &b);//a=1,b=0        m = 1; n = 1;        if (a > 0)        {            m = m + n; //1>0  m=2,n=1            if (a < b)                n = 2 * m;            else if (a == b)                n = 5;            else                n = m + 1;        }        printf("m=%d n=%d\n", m, n); //1,2        system("pause");}void main128(){        int s, t, a, b;        scanf("%d,%d", &a, &b);//a=5//b=2        s = 1;        t = 1;        //if作用范围只有一句大括号        if (a > 0)            s = s + 1;         /* ① */        if (a > b)             t = s + t;          /* ② */        else if (a == b)             t = 5;        else            t = 2 * s;        printf("s=%d,t=%d\n", s, t);        system("pause");}void main234(){    int a, b, m, n;    scanf("%d%d,\n", &a, &b);//a=1,b=0    m = 1; n = 1;    if (a > 0)        m = m + n; //1>0  m=2,n=1    //配对就近    if (a < b)        n = 2 * m;    else if (a == b)        n = 5;    else        n = m + 1;    printf("m=%d n=%d\n", m, n); //1,2}

程序片段(02):递归.c
内容概要:转化递归

#include <stdio.h>#include <stdlib.h>//01.编写程序,求a+aa+aaa+...(n个)aaa,其中a是一个数字.例如:3+33+333+3333+33333.//  1.分析问题步骤://      (1).复杂问题简单化//      (2).复杂问题规律化//      (3).复杂问题重复化//      //  2.递归所能解决的问题://      重复问题//      递推关系//   关系一://      1--->3//      2--->33//      3--->333//      n--->(n个)3-->((n-1)个)3*10+3int nAN(int num, int ele){    if (1 == num)        return ele;    return nAN(num - 1, ele) * 10 + ele;}//   关系二://      1-->3//      2-->3+33//      3-->3+33+333//      n-->n个整数,n个元素组成最大的数//      Sn-->Sn-1+anint qNH(int num, int ele){    if (1 == num)        return ele;    return qNH(num - 1, ele) + nAN(num, ele);}int main(void){    //printf("%d \n", nAN(5, 3));    //printf("%d \n", qNH(4, 1));    system("pause");}//void digui3(int n, int a, int sum, int an)//{//  if (n == 0)//  {//      printf("%d\n", sum);//      return;//  }//  else//  {//      an = an * 10;//      an += a;//      sum += an;//      digui3(n - 1, a, sum, an);//  }//}
0 0
原创粉丝点击