第四次作业

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

 

# include <stdio.h>
int main ()
{
   int x,y=0,i;
   printf("请输入一个整数:\n");
   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 ("\n");
      }
   }
 }
  printf("一共有%d个闰年\n",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!='\n')
    {    
        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("\n");
                 }
             }
    }
    printf("一共有%d个质数\n",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("\n");
  }
  return 0;
}

 

 

二。

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

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

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

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

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

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

 实验总结:

              1.区分‘==’与‘=’

               2.注意要求保留小数点时的书写

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

              4.注意第四题要想到当m等于负数时的情况

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

posted @ 2016-10-30 19:33  天亮……  阅读(134)  评论(1编辑  收藏  举报