第二次课加减乘除运算

第一阶 正常循环随机输出三十个式子

#include<stdio.h>
#include<stdlib.h>
char x[4]={'+','-','*','/'};

int main()
{
    int a,b,c;
    srand((unsigned)time(NULL));
    for(int i=0;i<30;i++)
    {
        printf("%d.",i+1);

        a = rand()%100;
        printf("%d",a);

        b = rand()%4;
        printf("%c",x[b]);

        c = rand()%100;
        printf("%d
",c);
    }
}

  

第二阶 在第一阶的基础上添加查重功能

#include<stdio.h>
#include<stdlib.h>
char x[4]={'+','-','*','/'};
int aa[30];
int bb[30];
int cc[30];

int main()
{
    int t=1;
    srand((unsigned)time(NULL));
    
    for(int i=0;i<30;i++)
    {
        aa[i] = rand()%100;
        bb[i] = rand()%4;
        cc[i] = rand()%100;

        for(int j=0;j<i;j++)
        {
            if(aa[i]==aa[j]&&bb[i]==bb[j]&&cc[i]==cc[j])
            {
                i--;
                t=0;
            }
        }
        if(t) printf("%d.%d%c%d
",i+1,aa[i],x[bb[i]],cc[i]);
        else t=1;
    }
}

  

第三阶 在第二阶的基础上添加判断是否有括号、是否有乘除等功能

#include<stdio.h>
#include<stdlib.h>

char x[4]={'+','-','*','/'};
int a[10][1000];
int b[9];


int main()
{
    int t=1,same=0;
    int coc,f,y,n,w=2,cz,kh,fw=100;
    srand((unsigned)time(NULL));
    printf("number? ");
    scanf("%d",&n);

    printf("Have '*'and'/'?(1 or 0) ");
    scanf("%d",&coc);
    if(coc) w=4;

    printf("cao zuo ge shu ");
    scanf("%d",&cz);

    printf("kuo hao ");
    scanf("%d",&kh);

    printf("fan wei ");
    scanf("%d",&fw);

    for(int i=0;i<n;i++)
    {
        for(int k=0;k<cz;k++)
        {
            a[k][i] = rand()%fw;
        }
        for(int k=0;k<cz-1;k++)
        {
            b[k] = rand()%w;
        }

        for(int j=0;j<i;j++)
        {
            for(int k=0;k<cz;k++)
            {
                if(a[k][j]==a[k][i]) same++;
            }
            if(same==cz*2-1)
            {
                i--;
                t=0;
            }
        }
        if(t)
        {
            printf("%d.",i+1);
            int n=0,m ;
            for(int k=0;k<cz-1;k++)
            {
                if(!n&&k<cz-2) m=rand()%2;
                if(m) {printf("(");n=1;}
                printf("%d",a[k][i]);
                if(!m&&n) {printf(")");n=0;}
                m=0;
                printf("%c",x[b[k]]);
            }
            printf("%d
",a[cz-1][i]);
        }
        else t=1;
    }
}

  

原文地址:https://www.cnblogs.com/linmob/p/13752008.html