第四次作业

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

      

#include<stdio.h>
int main()
{    
    int x,y,i;
    scanf("%d",&x);
    y=0;
    if(x<=0)
    {
        printf("输入错误\n");
    }
    else
    {
        if(x%2==0)
        {
            for(i=0;i<=x;i=i+2)
            {
                y=y+i; 
            }
            printf("%d",y);
        }
        else if(x%2!=0)
        {
            for(i=1;i<=x;i=i+2)
            {
                y=y+i;
            }
            printf("%d",y);
        }    
    }
    return 0;
}

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

#include<stdio.h>
int main()
{
     double x,y,z,i;
    x=0;
    y=0;
    for(i=1;i<=99;i=i+2)
    {
        x=x+1/i;
    }
    for(i=2;i<=100;i=i+2)
    {
        y=y-1/i;
    }
    z=x+y;
    printf("%.2lf",z);
    return 0;
}

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

#include<stdio.h>
int main()
{    
    int n,i;
    n=0;
    for(i=2000;i<=3000;i=i+4)
    {
        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;
} 

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

#include<stdio.h>
int main()
{    
    int a,b;
    double x,y;
    y=1;
    scanf("%lf%d",&x,&a);
    for(b=1;b<=a;b=b+1)
    {
        y=y*x;
    }
    printf("%lf",y);
    return 0;
}

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

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

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

#include<stdio.h>
int main()
{
    double a,b,c,d,e,i,n;
    i=0;
    d=0;
    n=0;
    e=0;
    while(a!=0)
        {
            scanf("%lf",&a);
            if(a>0)
            {
            i=i+1;
            d=d+a;
            }
            else if(a<0)
            {
            n=n+1;
            e=e+a;
            }
        }    
    if(i==0&&n!=0)
    {
        b=0;
        c=e/n;
    }
    else if(i!=0&&n==0)
    {
        c=0;
        b=d/i;
    }
    else if(n==0||i==0)
    {
        c=0;
        b=0;
    }
    else
    {
        b=d/i;
        c=e/n;
    }
    printf("正数的平均值为:%f\n",b);
    printf("负数的平均值为:%f\n",c);
    return 0; 
}

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

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

8.打印下列图形

             

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

本次课知识点总结

1.break语句在循环语句和swich语句中使用,终止并跳出循环体或开关体。

2.while 语句为先判断表达式,后执行循环。do whlie 为先执行循环后判断表达式。

3.continue只是结束本次循环,并不是终止整个循环的执行。

4.三种循环可以互相嵌套,不限层数。

5.i++(后缀)先使用后加,++i(前缀)先加后使用。

6.break只能用于循环语句和switch语句,continue只能用于循环体中。

7.不推荐使用goto语句。

实验总结

1.统计字符时要仔细检查结果,注意结果是否把最后的回车也算了进去。

2.输出闰年时要适当输出一些空格,使输出的结构更加简洁明确。

3.输出三角形时,规律要仔细慢慢的寻找,不能着急。

posted @ 2016-10-29 21:43  布宇航  阅读(165)  评论(2编辑  收藏  举报