美文网首页C语言
2019.2.24苏小红C语言

2019.2.24苏小红C语言

作者: sure_风雨与晴 | 来源:发表于2019-02-24 23:36 被阅读14次

    1.scanf()读入字符

    在%c前加一个空格,将缓存区中的回车符读走:

    printf("are u a boy (M) or a girl (F)?");
    scanf(" %c", &sex);
    

    scanf()按指定格式读取输入,非法字符的输入会导致数据无法正确读入,若要增加程序鲁棒性,让用户重新输入数据,之前还要清除留在缓冲区的非法字符:

    ret = scanf("%d", &guess);
    while(ret != 1)        //若输入错误,则重新输入
    {
        while(getchar() != '\n');
        printf("please guess a magic number:");
        ret = scanf("%d", &guess);
    }
    

    2.涉及到阶乘的程序,注意定义变量为长整型long或者long long,格式符为%ld

    3.rand()函数产生随机数

    调用rand()生成的是一个在0~32767之间的整数(需要stdlib.h头文件),要改变生成随机数的取值范围:

    求余运算rand()%b,变化到[0,b-1]之间
    利用rand()%b+a,变化到[a,a+b-1]之间

    产生随机数的过程称为“随机化”,是通过调用标准库函数srand()为函数rand()设置随机数种子来实现的:

    srand(1);
    magic=rand()%100+1;
    

    也可以通过函数time()需包含time.h头文件,读取计算机的时钟值,并把该值设置为随机数种子:

    srand(time(NULL));
    

    4.几个算式的循环程序

    通过计算累加项通项的方法寻找累加项的构成规律,将累加项通项表示成:term = sign/n。
    a+aa+aaa+...+a...a(n个a)

    for(i=1;i<=n;i++)
    {
        term=term*10+a;
        sum=sum+term;
    }
    

    1-1/2+1/3-1/4+...-1/100+...直到最后一项绝对值小于1e-4

    while(fabs(term)>=1e-4)
    {
        term=sign/n;    //计算累加项
        sum=sum+term;   //累加
        sign=-sign;     //分子变化规律
        n++;
    }
    

    sinx≈x-x^3 /3!+x^5 /5!-...直到最后一项绝对值小于1e-5

    do{
        term=-term*x*x/((n+1)*(n+2));
        sum=sum+term;
        n=n+2;
        count++;
    }while(dabs(term)>=1e-5;
    

    π/4=1-1/3+1/5-1/7+...

    e=1+1/1!+2/2!+...直到最后一项绝对值小于1e-5

    for(n=1;fabs(term)>=1e-5;n++)
    {
        fac = fac*n;
        term = 1.0/fac;
        e = e+term;
        count++;
    }
    

    相关文章

      网友评论

        本文标题:2019.2.24苏小红C语言

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