第四次作业 x

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

      

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

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

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

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

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

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

#include<stdio.h>
int main()
{
    int m=0,n=0,x=0,y=0;
    char c;
    printf("请输入一串字符,回车结束:");
    scanf("%c",&c);
    while(c!='\n')
    {
        if(c>='a'&&c<='z'||c>='A'&&c<='Z')
        {
            m++;
        }
        else if(c>='0'&&c<='9')
        {
            n++;
        }
        else if(c==' ')
        {
            x++;
        }
        else 
        {
            y++;
        }
        scanf("%c",&c);
    }
    printf("这其中字母有%d个,数字有%d个,空格有%d个,其他字符有%d个",m,n,x,y);
    return 0;
} 

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

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

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

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

8.打印下列图形

             

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

二、本次课知识点总结

1.第二小题中要注意怎么出现的一正一副;

2.在闰年和素数题中都有十个换行,要注意写上求个数的变量;

3.要注意求闰年的方法(i%4==0&&i%100!=0||i%400==0);

4.注意区分使用for和while,while则是不知道循环次数但又有条件限制,for是知道了循环次数;

5.在while循环那注意在开始循环前写的scanf是用来判断while那的那个条件在循环内容完了之后再写一个scanf 这个才是符合条件后的循环;

6.注意换行那个是在哪一个条件里边写;

7.打印三角形那个题输入*要倒着想,从第九个开始,跟正着的三角形不一样;

8.素数那个题用到了标记变量,要知道怎么使用。

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

1.字符那题注意要加单引号;

2.闰年那题为了看的整齐,要控制宽度,所以输出应该是%3d;

3.for和while之后都不加封号;

4.不要忘记切换输入法,有时候输完字之后忘记切换,则输入的符合都是错的;

5.写循环的时候要把循环的语句写对了,不要写错。

原文地址:https://www.cnblogs.com/zj1220/p/6001626.html