首页 > 代码库 > 第四次作业

第四次作业

实验一

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

y=     

代码:

#include<stdio.h>
int main()
{
    int x,y,a,b,sum=0;
    printf("请输入一个整数\n");
    scanf("%d",&x);
    if(x%2==0)
    {
        for(a=2;a<=x;a=a+2)
        {
            sum=a+sum;
        }
    }
    else
    {
        for(b=1;b<=x;b=b+2)
        {
            sum=b+sum;
        }
    }
    y=sum;
    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 i,n=100;
    float sum=1;
    for(i=2;i<=n;i=i+1)
    {
        if(i%2!=0)
        {
            sum=sum+1.0/i;
        }
        else
        {
            sum=sum-1.0/i;
        }
    }
    printf("%.2f",sum);
    return 0;
}

程序运行结果:

技术分享

实验三

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

代码:

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

程序运行结果:

技术分享

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

代码:

#include<stdio.h>
int main()
{
    float x,p=1;
    int m,i;
    printf("请输入一个整数和一个实数\n");
    scanf("%d,%f",&m,&x);
    for(i=1;i<=m;i=i+1)
    {
        p=x*p;
    }
    printf("%.2f",p);
    return 0;
}

程序运行结果:

 技术分享

试验五

实验要求:输入一串字符分别统计其中字母、空格、数字和其他字母的个数。

代码:

# include<stdio.h>
int main()
{
    char c1;
    int a=0,b=0,c=0,d=0,e=0,f;
    printf("请输入一串字符以‘\n‘为结束\n");
    do
    {
        scanf("%c",&c1);
        if(c1>=a&&c1<=z)
        {
            a=a+1;
            continue;
        }    
        else if(c1>=A&&c1<=Z)
        {
            b=b+1;
            continue;
        }
        else if(c1>=0&&c1<=9)
        {
            c=c+1;
            continue;
        }
        else if(c1== )
        {
            d=d+1;
            continue;
        }
        else
        {
            e=e+1;
            continue;
        }
    }while(c1!=\n);
    f=a+b;
    printf("字符中一共包含%d个字母,%d个数字,%d个空格,%d个其他字符\n",f,c,d,e);
    return 0;
}

 

程序运行结果:

 技术分享

实验六

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

代码:

#include <stdio.h>
int main()
{    
    int a;
    int b=0;int c=0;
    float d,e, sum1=0, sum2=0;
     do
     { 
         printf("请输入a的值\n");
        scanf("%d",&a);
          if(a>0) 
        {  
           b=b+1;
           sum1=sum1+a;
           d=sum1/b;
        }
        else
        {
            c=c+1;
            sum2=sum2+a;
            e=sum2/c;
            
        }
     
     }
     while(a!=0);
     printf("正数平均值:%.2f\n",d);
     printf("负数平均值:%.2f\n",e);
     return 0;
}

程序运行结果:

技术分享

实验七

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

代码:

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

程序运行结果:

技术分享

试验八

实验要求:打印下列图形

           *********

           *******

           *****

           ***

           *

代码:

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

程序运行结果:

技术分享

二、本次课知识点总结

  1. for循环,while循环和do...while循环三种循环格式的应用。
  2. if语句的熟练应用以及与三种循环语句的结合。
  3. 对标记变量的掌握。
  4. 整型常量与实数常量之间的相互转化。

三、实验总结

  1. 一格式子中的加减求和应该分开求和,再将它们的和进行加减。
  2. while后面应该是循环结束的条件。
  3. 要对循环初始值进行赋值。
  4. 两种while语句应用在不知道循环次数的情况下,for语句应用在知道循环次数的循环的情况下。

第四次作业