第四次作业

一、实验内容          

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

      

代码:

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

程序运行结果:

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

代码:

#include<stdio.h>
int main()
{
    int year,n=0;
    for (year=2000;year<=3000;year++)
    {
        if (year%4==0&&year%100!=0||year%400==0)
        {
            printf("%d ",year);
            n++;
            if (n%10==0)
            {
                printf("
");
            }
        }
    }
    printf("n=%d
",n);
    return 0;
}

程序运行结果:

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

代码:

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

程序运行结果:

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

代码:

#include<stdio.h>
int main()
{
    int a,b,c,d;
    char x;
    a=0;
    b=0;
    c=0;
    d=0;
    while ((x=getchar())!='
')
    {
        if (x>='A'&&x<='Z'||x>='a'&&x<='z')
        {
            a++;
        }
        else if (x==' ')
        {
            b++;
        }
        else if (x>='0'&&x<='9')
        {
            c++;
        }
        else
        {
            d++;
        }
    }
    printf("字母:%d个
",a);
    printf("空格:%d个
",b);
    printf("数字:%d个
",c);
    printf("其他:%d个
",d);
    return 0;
}

程序运行结果:

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

代码:

#include<stdio.h>
int main()
{
    float a=1,sum1=0,sum2=0,n1=0,n2=0;
    while (a!=0)
    {
printf("请输入一个正数或负数,输入0结束:");
    scanf("%f",&a);
    if (a>0)
    {
        sum1+=a;
        n1++;
    }
    else if (a<0)
    {
        sum2+=a;
        n2++;
    }
    }
    if (sum1>0)
    {
    printf("正数的平均值为%f
",sum1/n1);
    }
    else
    {
        printf("你没有输入正数");
    }
    if (sum2<0)
    {
    printf("负数的平均值为%f",sum2/n2);
    }
    else
    {
        printf("你没有输入负数");
    }
    return 0;
}

程序运行结果:

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

代码:

#include<stdio.h>
int main()
{
    int a,i,n=0,flag=0;
    for (a=2;a<=1000;a++)
    {
        for (i=2;i<=a-1;i++)
        {
            if (a%i==0)
            {
                flag=1;
            }
        }
         if (flag==0)
        {   
            if (a<10)
            {
            printf("    %d ",a);
            }
            else if (a<100&&a>=10)
            {
                printf("    %d",a);
            }
            else
            {
                printf("   %d",a);
            }
            n++;
            if (n%10==0)
            {
                printf("
");
            }
        }
        else
        {
            flag=0;
        }
    }
    printf("   n=%d",n);
    return 0;
}

程序运行结果:

8、实验要求:打印下列图形

   

代码:

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

程序运行结果:

二、本次课知识点总结

1、for和if两个语句可以循环叠加。

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

3、如果循环计算乘积,则积的初值要赋1,千万不能赋0;计算和时初值要赋0。

4、用float输入的变量要用%f。记得保留小数。

5、正负数求平均数时要注意合法判断,因为可能没有正数或者没有负数。

6、break跳出循环,continue跳出本次循环!

三、实验总结(实验中遇到的问题及解决方法)

1、只有字符用‘’。

2、素数不包括1。

3、用char输入时变量要用%c。

4、如果循环计算乘积,积的初值要赋值。

5、写代码前可以先写一个执行流程。

原文地址:https://www.cnblogs.com/chenqiu/p/6010742.html