第四次作业

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+=i;
    }
    printf("%d",y);}
    else
    {
        for(i=2;i<=x;i+=2)
        {
            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;
    for (i=1;i<=100;i++)
    if (i%2==0)
    sum=sum+(-1.0)/i;
    else
    sum=sum+(1.0)/i;
    printf("%.2f\n",sum);
    return 0;
}

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

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


 

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

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

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

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

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

#include <stdio.h>
int main()
{
    int x,i=0,j=0,sum1=0,sum2=0;
    scanf("%d",&x);
    while(x!=0)
    {
        if (x>0)
        {
            i++;
            sum1+=x;
        }
        else if (x<0)
        {
            j++;
            sum2+=x;
        }
        scanf("%d",&x);
    }
     printf("正数平均值:%.2f\n负数平均值:%.2f\n",(float)sum1/i,(float)sum2/j);
     return 0;
}

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

#include <stdio.h>
int main()
{
    int x,y,flag=0,f=0;
    for(x=2;x<=1000;x++)
    {
        for(flag=0,y=2;y<=x-1;y++)
 {
        if(x%y==0)
        {
            flag=1;
            break;
        }
    }
        if (flag!=1)
    {
        printf("%4d",x);
        f++;
        if (f%10==0)
        {
        printf("\n");    
        }
    }
 }
    return 0;
}

8.打印下列图形

        

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

 

知识点总结 :1 三种循环应用,执行过程,注意事项均不同!

                2 break跳出循环,continue跳出本次循环!

                3 累加型问题与累乘型问题注意循环要求!

实验总结:1 %与/用混!

              2 用float定义变量输出要用%.f!

              3 注意换行时空格在的位置!

              4 只有字符用‘’!

              5 注意输入时在哪里给x赋值!

              6 对应括号应对齐,格式要整齐!

原文地址:https://www.cnblogs.com/5267wss/p/5998326.html