• 第四次作业


    实验一:

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

          

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

     

    实验三:

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

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

     

    实验四:

    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()
    {
        int large=0,small=0,digital=0,space=0,other=0;
        char m;
        printf("请输入一串字符:\n");
        scanf("%c",&m);
        while(m!='\n')
        {
            if(m>='a'&&m<='z')
            {
                small++;
            }
            else if(m>='A'&&m<='Z')
            {
                large++;
            }
            else if(m>='0'&&m<='9')
            {
                digital++;
            }
            else if(m==' ')
            {
                space++;
            }
            else
            {
                other++;
            }
            scanf("%c",&m);
        }
        printf("这串字符中\n数字有%d个\n大写字母有%d个\n小写字母有%d个\n空格有%d个\n其他字符有%d个\n",digital,large,small,space,other);
    return 0; }

     实验六:

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

    #include<stdio.h>
    int main()
    {
        float s1=0,s2=0,digital,a=0,b=0;
        printf("请输入一批数字,按0结束\n");
        scanf("%f",&digital);
        if(digital==0) 
        {
            printf("error");
        }
        else if(digital>0||digital<0)
        {
            while(digital!=0)
            {
                if(digital>0)
                {
                    s1=s1+digital;
                    a++;
                }
                else if(digital<0)
                {
                    s2=s2+digital;
                    b++;
                }
                scanf("%f",&digital);
            }
            printf("正数的平均数为:%f\n负数的平均数为:%f",s1/a,s2/b);
        }
        else
        {
            printf("请输入数字"); 
        }
        return 0;
     } 

     

     

    实验七:

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

     #include<stdio.h>
     int main()
     {
         int i,x,n=0;
         for(i=2;i<=1000;i++)
         {
             for(x=2;x<=i;x++)
             {
                 if(i%x==0)break;
             }    
              if(i==x) 
             { 
                    printf("%5d ",i);
                    n++;
             if(n%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  for语句的应用形式(循环变量赋初值;循环的范围;循环变量增值)

    2  循环变量加一的几种形式 i++;++i;i=i+1;i+=1

    3  while语句的一般形式

       while(表达式)

       {

          循环语句;

       }

    4  do  while语句的一般形式

        do

      {

        循环语句;

       }while(表达式);

    实验总结:

    1  当知道循环体的条件时一般有if语句  当不知道循环体条件时用do  while语句

    2  在必要的情况时要记得赋初值

    3  在运用整除运算符时必须是整形的

    4  for语句中的三个语句之间使用分号隔开

    5  0不能够作为分母

    6  for循环语句只执行后面的一个括号

  • 相关阅读:
    Spring在Web中使用的基本思路
    Spring整合Hibernate
    cuda cudaprintf使用
    《算法竞赛入门经典》第四章 函数和递归
    《算法竞赛入门经典》第三章 3.4
    《算法竞赛入门经典》第三章 3.3
    《算法竞赛入门经典》第三章 3.2
    《算法竞赛入门经典》第三章 3.1
    《算法竞赛入门经典》第二章 2.3
    《算法竞赛入门经典》第二章 2.4
  • 原文地址:https://www.cnblogs.com/myfdpk/p/6004903.html
Copyright © 2020-2023  润新知