首页 > 代码库 > 4作业

4作业

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

#include<stdio.h>
int main()
{
    int m,n;
    float x,y=1.0;
printf("请输入实数x和整数m\n");
    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\n",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 y=0,x=0,z;
    for(i=2;i<=100;i+=2)
    {
        y=y+1.0/i;
    }
    for(i=1;i<=100;i+=2)
    {
        x=x+1.0/i;
    }
    z=x-y;
    printf("%.2f\n",z);
    return 0;
}

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

#include <stdio.h>
int main()
{
    int n=0,i,m=0;
    printf("输出2000年到3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。\n");
    for(i=2000;i<=3000;i++)
    {
        if(i%4==0&&i%100!=0||i%400==0)
        {
            printf("%d ",i);
            n++;
            m++;
            if(n%10==0)


            {
                printf("\n");
            }
        }
    }
    printf("一共有%d个闰年",m);



    return 0;
}

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

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

 

 

 

 

 

 

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

#include<stdio.h>
int main()
{
char c;
int a,b,d,e,other;
a=0;
b=0;
d=0;
e=0;
other=0;
printf("请输入一串字符,按回车结束:\n");
scanf("%c",&c);
while(c!=\n)
{
    if(c>=A&&c<=z)
    {
        a++;
    }
    else if(c>=a&&c<=z)
    {
        b++;
    }
    else if(c== )
    {
        d++;
    }
    else if(c>=0&&c<=9)
    {
        e++;
    }
    else
    {
        other++;
    }
    scanf("%c",&c);
}
printf("共有%d个大写字母,%d个小写字母,%d个空格,%d个数字,%d个其他字符",a,b,d,e,other);
return  0;
}

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

m,计算xm,不允许调用pow()函数。

#include<stdio.h>
int main()
{
    int a=0,b=0,c=0,d=0,e=0;
    float f,g;
    scanf("%d",&a);
    if(a==0)
    {
        printf("error");
    }
    else
    {
        while(a!=0)
        {
            if(a>0)
            {
                b=b+a;
                c++;
            }
        else if(a<0)
            {
                d=d+a;
                e++;
            }
            scanf("%d",&a);
        }
        
        f=(float)b/c;
        g=(float)d/e;
        printf("%.2f  %.2f",f,g);
    }
    return 0;
}

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

#include<stdio.h>
int main()
{
    int a,b,c,d;
    for(a=2;a<=1000;a++)
    {
        for(b=2;b<a;b++)
        {
            if(a%b==0)
            break;
        }
        if(b>=a)
        {
            printf("%03d ",a);
            c++;
            if(c%10==0)
        {
            printf("\n"); 
        }
        }
    }
    return 0;
}

8.打印下列图形

             技术分享

 

 

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

总结:做5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。时最后输出时顺序不对应;做6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,时主要还是考虑0的问题不考虑的话除数会多加一个算出结果会小;

4作业