美文网首页
练习题2

练习题2

作者: 全無 | 来源:发表于2017-12-15 10:27 被阅读23次
    练习题目.png

    1、在显示器上输出字符串 I am a student

    #include<stdio.h>
    int main(void)
    {
        printf(" I am  not  a stdudent\n");
        return 0;
    }
    

    3、输入一个角度,计算x对应的正切值(提示:math.h中tan()函数)
    180°等于1弧度。
    角度(angle):
    弧度(radian):

    #include<stdio.h>
    #include <math.h>
    #define PI 3.1415926   //必须指定确切的数
    
    int main(void)
    {
        double x = 0;
        
        printf("Enter a value: ");
        scanf("%lf",&x);
        
        x = (PI * x )/180;     //角度和弧度的转换规则
        
        printf(" tan(x) = %.0lf\n",tan(x));
    
        return 0;
    }
    
    错误
    
    #include <stdio.h>
    #include <math.h>
    
    #define PI 3.14159265
    
    int tan (void)
    {
        double  x = 0;
        printf("Enter the value: \n");
        scanf("%lf",&x);
        
        
        x = tan ( x * PI / 180.0 );
        
        printf ("The tangent of %f degrees is %f.\n", x, tan(x) );
        return 0;
    }
    

    2、从键盘上输入三个学生的考试成绩,计算其平均分并输出。(不存储上面的分数)
    (1) 不使用数组解决平均分问题
    存在问题一:
    不清楚使用什么类型的数据类型
    存在问题二:
    不知道到怎么转换类型

    #include<stdio.h>
    int main(void)
    {
          int count = 3;
          double grades =0L;
          double  sum  =0L;
          float  average =0;
       
         for( unsigned int i = 0; i<count; ++i)
         {
                 printf("请输入三个学生的成绩: \n");
                 scanf("%ld",&grades);
                 sum += grades;
          }
         
         average = (double)sum / count ;
         printf("这三个学生的平均分%lf: \n",average); 
         return 0;
    }
    

    (2)不是用数组计算平均分(存储分数)

    #include<stdio.h>
    int main(void)
    {
        double sum = 0;
        float   average =0;
    
       int grade 0 = 0, gade1 = 0, grade2= 0;    
       printf("Enter the three grades,\n");
       scanf("%d%d%d",&grade0,&grade1,&grade2);
    
       sum = grade0 +grade1 +grade2;
       average = sum / 3.0f;
      
       printf("这三个学生的平均分%lf: \n",average); 
       return 0;
    

    (3) 使用数组解决平均问题

    #include<stdio.h>
    int main(void)
    {
       int grades[3];
       int count = 3;
       double sum =0;
       float average = 0;
    
       printf("请输入成绩: \n");
       
        for(unsigned int i = 0; i < count ; ++i)
        {
              printf("
              scanf("%ld",&grades[i]);
              sum += grades[i]
       }
         average = sum / count;
        printf("这三个学生的平均分%lf: \n",average); 
         return 0;
    }
    

    4、输入两个数,输出其中的大者

    #include <stdio.h>
    int main(void)
    {
       int  a = 0;
       int  b = 0; 
    
       printf("请输入两个数: \n");
       scanf("%d  %d",&a,&b);
       if(a>b)
       {
           printf(" Max number is %d,"a);
       }
       else
       {
           printf("Max number is %d", b);
       }
        return 0;
    }
    

    9、从键盘输入两个数,求出其中的大者。

    #include<stdio.h>
    int main(void)
    {
        int x = 0;
        int y = 0;
        int z = 0;
        
        printf("请输入两个数: \n");
        scanf("%d %d",&x,&y);
        
        if(x >y)
        {
            z=x;
        }
        else
        {
            z=y;
        }
        printf("Max number is %d\n",z);
        return 0;
    }
    

    6、从键盘输入两个数,求出这两个数中的小者并将结果输出。

    #include stdio.h>
    int main(void)
    {
        int a = 0;
        int b = 0;
        printf("请输入两个数:\n");
        scanf("%d %d",&a,&b);
    

    7、从键盘输入两个数,将这两个数交换之后输出。
    (1)先存储,再取出来,交换之后再存储。(问题是取出来之后放在哪里呢?)
    (2)由于数据都在内存中存储,把变量存入到盒子中,找到一个临时变量,把一个盒子的值赋值给一个变量,这个盒子就空了,然后另一值赋值给第一个盒子,第二个盒子就空了,再把临时变量的值赋给第二个变量,即可。
    (3)有两个盒子,A盒子里面有两个黑色的球,B盒子里面有三个白色的球,
    第一步是A盒子里的两个黑色的球+三个白色的球(就有5个球),第二步是把5个球减去3个白色的球(2个黑色的球),第三步是把5个球减去两个黑色的球(3个白色的球)
    易读性

    #include <stdio.h>
    
    int main(void)
    {
        int number1 = 0;
        int number2 = 0;
        
        printf("请输入两个数:\n");
        scanf("%d %d",&number1,&number2);
        
        printf("number1 = %d, number2 = %d\n",number1,number2);
        
        //1、number1 = number1 + number2;
        //2、number2 = number1 - number2;
        //3、number1 = number1 - number2;
        
        int temp = 0;
        
        temp = number1;
        number1 = number2;
        number2 = temp;
        
        printf("number1 = %d ,number2 = %d\n",number1,number2);
        
        
       
        return 0;
    }
    

    8、从键盘输入一个数,将该数的绝对值输出。

    方法一

    #include <stdio.h>
    
    int main(void)
    {
        int a = 0;
        
        printf("请输入一个数字: \n");
        scanf("%d",&a);
        
        if(a >=0)
        {
            printf("%d\n",a);
        }
        else
        {
            a = (-a);
            printf("%d\n",a);
        }
           return 0;
        
    }
    

    方法二: 求取绝对值 是fabs()函数 double类型的lf 、 、 float 类型的f

    #include <stdio.h>
    #include <math.h>
    
    int main(void)
    {
        float a = 0;
        
        printf("请输入一个数: ");
        scanf("%f",&a);
        
        printf("fabs(a) = %.0f\n",fabs(a));
        
        return 0;
    }
    

    5、求1~100的和。

    #include<stdio.h>
    int main(void)
    {
       int count = 100;
       int sum = 0;
    
       //read the number of integers to be sum
       printf("\nEnter the number of integer you want to sum:\");
      scanf("%d",&count);
    
        //sum integers from 1 to count
       for(unsigned int i =0; i < count; ++i)
                  sum += i;
       printf("\nTotal of the first %u number is %llu\n",count, sum);
       return 0;
    }
    输出结果为:
    Enter the number of integers you want to sum:
    Total of the first 10 integers is 55
    

    10、编写一个程序,求1~100中的质数(素数)。
    就是在所有比1大的整数中,除了1和它本身以外,不再有别的约数,(能被整除的个数小于<3)这种整数叫做质数
    当被除数/除数的余数是零表示除数能被(被除数)整除
    怎样判断一个数是质数呢?
    问题一:练习这一题可以加深理解嵌套的for循环。
    先判断条件,然后执行循环体,
    问题二:运算符/和%的使用,如果使用{(i%j)==0}可以判断i 有多少个约数。只有1和它本身这两个约数的数是质数。
    问题三:
    自己没有真正的理解的内容,即使你抄下来了也不是你自己的东西。

    #include <stdio.h>
    
    int main1(void)
    {
        for (int i = 2; i <= 100; i++) {
            // 判断 i 是否为质数
            int count = 0;
            for (int j = 1; j <= i; j++) {
                // 判断 i % j 是否为 0
                if (i % j == 0) {
                    // 计数:计算 i 有多少个约数
                    count += 1;
                }
            }
            
            // 判断约数的个数是否小于 3
            if (count < 3) {
                printf("%d 是质数\n", i);
            }
        }
        return 0;
    }
    
    #include <stdio.h>
    
    int main() {
        int number = 0;
        printf("请输入一个整数(2 ~ 100):");
        scanf("%d", &number);
        
        int count = 0;
        for (int i = 1; i <= number; i++) {
            if (number % i == 0) {
                count += 1;
            } else {
                // Do nothing
            }
        }
        
        if (count < 3) {
            printf("%d 是质数\n", number);
        }
        return 0;
    }
    

    12、求1~100中的所有奇数之和。

    #include<stdio.h>
    int main(void)
    {
        int sum = 0;
        int count = 0;
    
        printf("\nEnter the number you want to sum: ");
        scanf("%d", &count);
    
    
        for (unsigned int n = 0; n <= count; ++n)
        {
            sum += (2 * n + 1);
    
        }
        printf("1~100的所有基数和%d: \n", sum);
        return 0;
    }
    
    

    11、从键盘输入一个数并求其阶乘值
    自己上午写的程序,到了晚上竟然忘记怎么写了。

    #include <stdio.h>
    int main(void)
    {
        int a =0;
        int sum = 1;
        
        printf("请输入一个数:");
        scanf("%d",&a);
        
        for( int n =1; n<= a; ++n)
        {
            // sum= sum * [n(n-1)(n-2)(n-3)....4*3*2*1]
            sum *= n;
        }
        printf("%d!= %d\n",a,sum);
        return 0;
    }
    

    13、编写程序,要求从键盘输入N, 求1/3+2/4+3/5+。。。n-2/n
    i 是循环控制变量的初值。n是循环判断的条件。
    +=运算符是为了实现在本身基础上继续加;
    问题一:
    如何实现强制类型转换(不理解如何实现)
    问题二:
    for循环的具体操作不清楚。
    问题三:
    打印的操作的目的是什么呢?

    #include <stdio.h>
    
    int main(void)
    {
        int n = 0;
        float result =0;
        
        printf("请输入一个不小于3的数: \n");
        scanf("%d",&n);
        
        for(int i = 3; i <= n; ++i)
        {
            result += (float)(i-2)/i;
        }
        
        printf("%f\n",result);
        
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:练习题2

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