第四次作业

一.实验内容

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

      

#include<stdio.h>
int main()
{
    float x,y;
    printf("请输入x的值:");
    scanf("%f",&x);
    if(0<=x&&x<5)
    {
        y=2.5+x;
        printf("%.2f",y);
    }
    else if(5<=x&&x<10)
    {
        y=2-1.5*(x-3)*(x-3);
        printf("%.2f",y);
    }
    else if(10<=x&&x<20)
    {
        y=x/2-1.5;
        printf("%.2f",y);
    }
    else
    {
        printf("不符合要求");
    }
    return 0;
}

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

#include<stdio.h> 
int main()
{
    int i;
    float s;
    for(i=1;i<=100;i++)
    {
        if(i%2==0)
        {
          s=s-1.0/i;
        }
        else if(i%2==1)
        {
          s=s+1.0/i;
        }
    }
    printf("%.2f\n",s);
    return 0;
}

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

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

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

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

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

#include <stdio.h>
int main ()
{
    char X;
    int K=0,S=0,Z=0,Q=0;    
    printf ("请输入一串字符:");    
    while((X=getchar())!='\n')
    {
        if(X>='a'&&X<='z'||X>='A'&&X<='Z')
        {
            Z++;
        }
        else if(X==' ')
        {
            K++;
        }
        else if (X>'0'&&X<'9')
        {
            S++;
        }
        else
        {
            Q++;
        }
    }
    printf ( "空格有%d个 数字有%d个 字母有%d个 其他字符有%d个",K,S,Z,Q);  
    return 0;
}

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

#include <stdio.h>
int main()
{
    int x,n=0,m=0;
    float z=0,f=0;
    printf("请输入一串数:"); 
    scanf("%d",&x);
    while(x!=0)
    {
        if(x>0)
        {
        z=z+x;
        n++;
        }
        else if(x<0)
        {
        f=f+x;
        m++;
        } 
        scanf("%d",&x); 
   }
    if(m==0||n==0)
    {
    printf("error");
    }
    else
    { 
    printf("正数平均数为%.2f,负数平均数为%.2f",(float)z/n,(float)f/m);
    }
    return 0;
}

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

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

8.打印下列图形

             

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

二.本次课知识点总结

1分清for语句与while语句与do...while语句的结构

2循环次数已知用for语句,次数未知,条件位置用while语句,至少循环一次用do...while语句(不是强制性)

3嵌套循环中外层循环1次,内层要完成所有循环

三.实验总结

1 ++ --前不能接常量或表达式

2for中表达式可以省略,但 ;不能省略 

3无限循环中用break从循环中跳出

4注意分清数据类型,不能混淆%d,%c,%f

5for 与while后无分号 但do...while中的while后有分号

4

posted @ 2016-10-25 22:27  UUZsama  阅读(160)  评论(2编辑  收藏  举报