首页 > 代码库 > 作业四

作业四

一.

实验要求:

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

      技术分享

代码:

# include <stdio.h>
int main ()
{
    int z,x,y=0;
    printf("请您输入一个整数\n");
    scanf("%d",&z);
        if(z<=0)
    {
        printf("输入错误\n");
     } 
    if(z%2!=0)
    {
        
        for(x=1;x<=z;x=x+2)
        {
            y=y+x;
        }    
    }
    else if(z%2==0)
     {
        for(x=2;x<=z;x=x+2)
        {
            y=y+x;
        }
    }
    printf("输出您的答案,结果为%d\n",y);
    return 0;
}
   

 

截图:

技术分享

 

二.

实验要求:

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

代码:

# include <stdio.h>
int main()
{
    int z;
    float x=1,y=0;
    for (z=1;z<=100;z++)
    {
        if(z%2==0)
        {
            x=-1.0/(float)z;
        }
        else if(z%2!=0) 
        {
            x=1.0/(float)z;
        }
        y=y+x;
    }
    printf("算式1-1/2+1/3-1/4+1/5- … +1/99-1/100的结果为%0.2f",y);
    return 0;
}

 

截图:

技术分享

 

三.

实验要求:

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

代码:

# include<stdio.h>
int main()
{
    int x,z=0;
    for (x=2000;x<=3000;x++)
    {
        if((x%4==0&&x%100!=0)||(x%400==0))
        {
           {
            printf(" %d",x);
            z=z+1;
           }
        
        if(z%10==0)
          {
            printf("\n");
          }
        }
    } 
    printf("\n 在2000年至3000年,一共有%d个闰年",z);
    return 0;
 }

 

截图:

技术分享

 

四.

实验要求:

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

代码:

#include <stdio.h>
int main()
{ 
    float n,sum=1; 
    int x,y;
    printf("??ê?è?ò???êμêyoíò?????êy,2¢ó?£?o????a£??°???aêμêy£?oó???a??êy\n");
    scanf("%f,%d",&n,&x);
    if(x==0)
    {
        printf("ê?3??úμ??á1??a1");     
    }
    else if(x>0)
    {
        for(y=1;y<=x;y++)
        {
        sum=sum*n; 
        }
        printf("ê?3??úμ??á1??a%f\n",sum);
    }
    else if(x<0)
    {
        for(y=1;y<=-x;y++)
        {
        sum=sum*n; 
        }
        sum=1/(float)sum;
        printf ("ê?3??úμ??á1??a%f\n",sum);
    }
    return 0;
}

 

截图:

技术分享

 

五.

实验要求:

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

代码:

#include <stdio.h>
int main()
{
    int m=0,n=0,o=0,p=0;
    char a;
    printf("请输入任意一段字符。分别统计其中的字母、空格、数字和其他字符的个数\n");
    do
    {
        scanf("%c",&a);
        if(a==\n)
        {
            break;
        }
        else if(a>=1&&a<=9)
        {
            m++;
        }
        else if(a>=A&&a<=Z||a>=a&&a<=z)
        {
            n++;
        }
        else if(a== )
        {
            o++;
        }
        else 
        {
            p++;
        }
    }while(a!=\n);
    printf("数字的数目是:%d\n", m);
    printf("字母的数目是:%d\n", n);
    printf("空格的数目是:%d\n", o);
    printf("其他字符的数目是:%d\n", p);
    return 0;
}

 

截图:

技术分享

 

六.

实验要求:

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

代码:

# include <stdio.h>
int main()
{
    int a,x=0,y=0,m=0,n=0;
    printf("请随意输入一批数,输完一个,回车隔开,输入0结束回车:\n");
    scanf("%d",&a);
    while(a!=0)
    { 
        if(a>0)
        {
            x=x+a;
            m++;
        }
        else if(a<0)
        {
            y=y+a;
            n++;
        }
        scanf("%d",&a);
    }
    if(m==0)
    {
        if(n==0)
        {
            printf("正数的平均值为0,负数的平均值为0\n");
        }
        else if(n!=0)
        {
            printf("正数的平均值为0,负数的平均值为%.2f\n",(double)y/n);
        }
    }
    else if(m!=0)
    {
        if(n==0)
        {
            printf("正数的平均值为%.2f,负数的平均值为0\n",(double)x/m);
        }
        else if(n!=0)
        {
            printf("正数的平均值为%.2f,负数的平均值为%.2f\n",(double)x/m,(double)y/n);
        }
    }
   return 0;    
}

 

截图:

技术分享

 

七.

实验要求:

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

代码:

# include <stdio.h>
# include <math.h>
int main()
{
    float a;
    int m,n=0,x,flag;
    for(m=2;m<=1000;m++) 
    {
       flag=0;
       a=sqrt(m);
       for(x=2;x<=a;x++)
       {
          if(m%x==0)
          {
            flag=1;
            break;    
          } 
       }
       if(flag==0)
       {
          printf(" %03d",m);
          n++;
          if(n%10==0&&n!=0)
          {
            printf("\n");
          } 
       } 
    } 
    printf("\n在一千以内一共有%d个素数\n",n); 
    return 0;    
}

 

截图:

技术分享

 

实验要求:

打印下列图形

  技术分享

代码:

#include<stdio.h>
int main()
{
    int x,n;
    for(x=1;x<=5;x=x+1)
    {
        for(n=1;n<=x-1;n=n+1)
        printf(" ");
        for(n=1;n<=11-2*x;n=n+1)
        printf("*");
        printf("\n");
    }
    return 0; 
}

 

截图:

技术分享

 

本次知识点总结:

1.几种关于循环的方法以及循环的嵌套。

2.do while至少执行一次循环,而while可以一次都不执行循环。

3.循环中,break指结束循环,执行循环体后面的语句,continue是跳过循环体中剩余的语句,执行下一次循环。

4.for,if,while后面不必加分号。

5.累加求和问题注意和要初始化为0。累乘求和问题注意 乘积要初始化为1。

6.goto语句指无条件转向语句标号处执行,但不推荐此方法。

本次实验总结:

1.不同的题目合理运用不同的循环方式。

2.注意开始循环时变量的初始值。

3.与前面的输出隔出位置用“ ”,回车用“\n”。

4.输出十个一换行,用次数和10求余。

作业四