• 作业4,


    1.编写程序,输入一个整数x,按照下式输出对应的y值。  

     

    复制代码
    # include <stdio.h>
    int main ()
    {
       int x,y=0,i;
       printf("请输入一个整数:
    ");
       scanf ("%d",&x);
       if (x==0)
       {
          printf("输入错误!");
       }
       if (x%2==0)
       {
          for (i=2;i<=x;i+=2)
          {
             y=y+i;
          }
          printf ("y=%d",y);
       }
       else if (x%2!=0)
       {
           for (i=1;i<=x;i+=2)
           {
               y=y+i;
           }
           printf("y=%d",y);
        }
       return 0;
    
    }
    复制代码

                

     2.编程求1-1/2+1/3-1/4+1/5- … +1/99-1/100,结果保留两位小数。

    复制代码
    # include <stdio.h>
    int main ()
    {
      int i;
      double a,b,c;
      a=0;
      b=0;
      for (i=1;i<=99;i+=2)
      {
          a=a+1.0/i;
      }
      for (i=2;i<=100;i+=2)
      {
           b=b-1.0/i;
      }
    c=a+b;
    printf ("%.2lf",c);
    return 0;
    }
    复制代码

      3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。

    复制代码
    # include <stdio.h>
    int main ()
    {
     int a,i;
     a=0;
     for (i=2000;i<=3000;i++)
     {
       if (i%4==0&&i%100!=0||i%400==0)
       {   printf(" %d",i);
          a=a+1;
          if (a%10==0)
          {
              printf ("
    ");
          }
       }
     }
      printf("一共有%d个闰年
    ",a);
      return 0;
    }
    复制代码

     

         4.输入一个实数x和一个整数 m,计算xm,不允许调用pow()函数。

    复制代码
    # include<stdio.h>
    int main ()
    {
      int m,i;
      float x,y; 
      printf ("输入一个实数x和一个整数m");
      scanf ("%f%d",&x,&m);
          y=1;
     if (m>=0)
     {
          for (i=1;i<=m;i++)
          {
             y=y*x; 
          }
             printf ("%f",y);
          
     }
     else if (m<0)
     {
         for (i=-1;i>=m;i--)
         {
             y=y*(1/x);
         }
             printf ("%f",y); 
         
    
     }
          return 0;
    
    }
    复制代码

      5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。

    复制代码
    # include <stdio.h>
    int main ()
    {
        int b=0,c=0,d=0,e=0;
        char ca;
        printf ("请输入一串字符");
        scanf("%c",&ca);
    
        while(ca!='
    ')
        {    
            if ((ca>='A'&&ca<='Z')||(ca>='a'&&ca<='z'))
            {
                b++;
            }
            else if (ca==' ')
            {
               c++;
            }
            else if (ca>='0'&&ca<='9')
            {
               d++;
            }
            else 
            {
               e++;
            }
            scanf("%c",&ca);
        }
        printf ("有%d个字母,有%d个空格,有%d个数字,有%d个其他字符",b,c,d,e);
        return 0;
    }
    复制代码

      6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值。

    复制代码
    # include <stdio.h>
    int main ()
    {
       int a,b=0,c=0,sum1=0,sum2=0;
       float  average1,average2;
       printf("输入一批数(正数和负数)");
       scanf ("%d",&a);
       while (a!=0)
       { 
           if (a>0)
           {
              b++;
              sum1=sum1+a;
           }
           else if (a<0)
           {
               c++;
               sum2=sum2+a;
           } 
             scanf ("%d",&a);
       }
         
       if (b==0&&c==0)
       {
          printf("正数为0个,无平均数,负数为0个,无平均数");
       }
       else if (c==0&&b!=0)
       {   
           average1=(float)sum1/b;
          printf(" 负数为0个,无平均数,正数的平均数为%.2f",average1); 
       }
       else if(b==0&&c!=0)
       {
          average2=(float)sum2/c;
          printf("正数为0个,无平均数,负数的平均数为%.2f",average2);
       }
       else if (b!=0&&c!=0)
       { 
           average1=(float)sum1/b;
         average2=(float)sum2/c;
            printf("正数的平均数为%.2f,负数的平均数为%.2f",average1,average2);
       
       }
       return 0;
    }
    复制代码

      7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)

    复制代码
    # include <stdio.h>
    int main()
    {
        int i,a,flag=0,c=0;
        for(i=2;i<=1000;i++)
        {
             flag=0;
             for(a=2;a<=i-1;a++)
             {    
                 if(i%a== 0)
                 {   
                     flag=1;
                 }
             }    
             if (flag!=1)
            {    
                printf(" %.3d",i);
                 c=c+1;
                     if(c%10==0)
                     {
                         printf("
    ");
                     }
                 }
        }
        printf("一共有%d个质数
    ",c);
        return 0;
    }
    复制代码

      8.打印下列图形

                 

    复制代码
    # include <stdio.h>
    int main ()
    {
      int i,j;
      for (i=5;i>=1;i--)
      {
         for (j=1;j<=5-i;j++)
            {
             printf(" ");
            }
         for(j=1;j<=2*i-1;j++)
         {
             printf("*");
         }
        printf("
    ");
      }
      return 0;
    }
    复制代码

     

    二。

    本科次实验点的总结:1输出三位数字,不足三位在后面补空格用%.3d。

                                  2.for语句、while语句和do...while语句的使用和区别

                                       for用在知道循环次数的时候,不知道循环次数的时候用while和do...while,

                                               do...while是必须执行一次

                                3.在循环中,break是结束整个循环,continue是结束本次循环

                                4。在循环嵌套时,外层决定行,内层决定列

     实验总结:

                  1.区分‘==’与‘=’ 一个是赋值一个是等号,后者多在if判断句里使用。      2.注意要求保留小数点时的书写

                   3.写素数那道题的的思路,想清楚判断条件

                  4.注意第四题要想到当m等于负数时的情况,某些题需要分一步讨论好不成立时的结果。

                  5,注意在有些题0的特殊性,要分好情况,特殊情况的时候要注意!

                    6。do while语句和while语句的区别,一个是肯定执行一次,要知道看时候用对语句。

  • 相关阅读:
    Redis的分布式锁
    Redis的雪崩、击穿、穿透
    psr规范
    Mysql的联(复)合索引
    nginx的location配置(二)
    nginx的location规则(一)
    easyswoole中队列的使用
    第三章 文件I/O
    移动语义及拷贝优化
    PHP对接tdzntech.com云平台电子免费券程序
  • 原文地址:https://www.cnblogs.com/endeavor992/p/6014320.html
Copyright © 2020-2023  润新知