zoukankan      html  css  js  c++  java
  • C语言成长学习题(八)

    三十一、编写程序,用公式∏/4=1-1/3+1/5-1/7+...,求∏的近似值,直到最后一项的绝对值小于10-4为止。

     1 #include <stdio.h>
     2 #include <math.h>
     3 
     4 void main(void)
     5 {
     6     int sign = 1, i = 1;
     7     float next = 1.0, pi, sum = 0.0;
     8 
     9     while (fabs (next) >= 1e-4)
    10     {
    11         sum = sum + next;
    12         sign = -sign;
    13         i = i + 2;
    14         next = (float)sign / i;
    15     }
    16     pi = sum * 4;
    17     printf("pi = %f
    ", pi);
    18 }    

    结果:

    pi = 3.141397

      fabs(x)是库函数,其功能是求x的绝对值。

    三十二、编写用人机对话形式进行加、减、乘、除运算的程序。用户没输入一次运算数和运算符,系统输出响应的结果,当输入的运算符为“#”时结束循环。

     1 #include <stdio.h>
     2 #include <conio.h>
     3 
     4 void main(void)
     5 {
     6     int i = 0, flag = 0;
     7     float a, b, result;
     8     char sym;
     9 
    10     clrscr();
    11     printf("请输入第一题,用3#3退出.
    ");
    12     scanf("%f%c%f", &a, &sym, &b);
    13     while (sym != '#')
    14     {
    15         switch (sym)
    16         {
    17             case '+': result = a + b; break;
    18             case '-': result = a - b; break;
    19             case '*': result = a * b; break;
    20             case '/':
    21                 if (b == 0)
    22                     flag = 1;
    23                 else
    24                     result = a / b;
    25                 break;
    26             default: flag = 2;
    27         }
    28         if (flag == 0)
    29         {
    30             printf(%f%c%f = %f
    ", a, sym, b, result);
    31             i++;
    32         }
    33         else if (flag == 1)
    34             printf("除数为0!
    ");
    35         else if (flag == 2)
    36             printf("%c是非法运算符!
    ", sym);
    37         printf("请输入第%d题,用3#3退出.
    ", i);
    38         scanf("%f%c%f", &a, &sym, &b);
    39     }
    40 }

    结果:

    请输入第1题,用3#3退出.

    2*3.5

    2.000000*3.5000000 = 7.000000

    请输入第2题,用3#3退出.

    3/0

    除数是0!

    请输入第2题,用3#3退出.

    5.5&4.7

    &是非法字符!

    请输入第2题,用3#3退出.

    3#3

    三十三、将从键盘输入一串字符(用#结束输入)按如下规则进行转换:

        (1)如果输入的字符为大写字母,则先转换为对应的小写字母。

        (2)将a转换为c,b转换为d,...,x转换为z,y转换为a,z转换为b。

        (3)其它字符不转换

     1 #include <stdio.h>
     2 
     3 void main(void)
     4 {
     5     char ch;
     6     
     7     printf("Input data: ");
     8     do
     9     {
    10         ch = getchar();
    11         if (ch >= 'A' && ch <= 'Z')
    12             ch = ch + 32;
    13         if (ch >='a' && ch <='z')
    14             ch = ch + 2;
    15         if (ch > 'z')
    16             ch = ch - 36;
    17         putchar(ch);
    18     }while (ch != '#');
    19 }

    结果:

    Input data: UfYr'q 2 yLb 3?#

    what's 2 and 3?#

    三十四、判断从键盘输入的自然数(大于1),是不是素数。

     1 #include <stdio.h>
     2 
     3 void main(void)
     4 {
     5     int i, a;
     6     
     7     printf("Input a(>1): ");
     8     scanf("%d", &a);
     9     for (i = 2; i <= a - 1; i++)
    10         if (a % i == 0) break;
    11     if (i > a-1)
    12         printf("%d is a prime number.
    ", a);
    13     else
    14         printf("%d is not a prime number.
    ", a);
    15 }

    结果:

    (1)Input a(>1): 11

      11 is a prime number.

    (2)Input a(>1): 15

      15 is not a prime number.

    三十五、求1!+2!+3!+...+20!的值。

     1 #include <stdio.h>
     2 
     3 void main(void)
     4 {
     5     int n;
     6     float fac = 1.0, sum = 0.0;
     7 
     8     for (n = 1; n <= 20; n++)
     9     {
    10         fac = fac * n;
    11         sum = sum + fac;
    12     }
    13 
    14     printf("sum = %e
    ", sum);
    15 }

    结果:

    sum = 2.56133e+018

  • 相关阅读:
    Model1简介
    修改Maven的本地仓库地址
    JavaWeb实现上传文件
    数据库
    集合
    JavaWeb
    Java基础
    Redis 中 redis.conf配置详细解析
    利用Java生成二维码
    利用dom4j读写XML
  • 原文地址:https://www.cnblogs.com/zero-jh/p/5024835.html
Copyright © 2011-2022 走看看