zoukankan      html  css  js  c++  java
  • 第五次作业

     1.输入两个正整数m和n(要求m<=n), 求m!+(m+1)!+(m+2)!…+n!

    # include <stdio.h>
    # include<stdlib.h>
    int main()
    {
          int a,b,c,d,e=1;
    float
    sum=0;

    printf("输入两个正整数a和b且(a<=b) ");
        scanf("%d%d",&a,&b);
        if((a>b)||(a<=0)||(b<=0))
        {
            printf("输入错误
    ");
            exit(0);
        }
        for(c=a;c<=b;c++)
          {
            e=1; 
            for(d=1;d<=c;d++)
            {
                e=e*d;
            }
            sum=sum+e;
          } 
        printf("输出为%f
    ",sum);
        return 0;
    }

    2.输出1000以内的所有完数。所谓完数是指这个数恰好等于除他本身外的所有因子之和。例,6的因子为1,2,3,6=1+2+3,所以6是完数。 

    # include <stdio.h>
    int main()
    {
        int a,b,sum=0;
        for (a=2;a<=1000;a++)
          {
            sum=0;
            for(b=2;b<a;b++)
              {
                  if(a%b==0)
                  {
                      sum=sum+b;
                  }
            }
            sum=sum+1;
            if(a==sum)
            {
                printf("%d ",a);
            }
          }
        return 0;
    }

    3.奇偶归一猜想——对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。   如n = 11,得序列:11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1。(共有14个步骤)  题目输入正整数n,求这个n多少步能归一 

    # include<stdio.h>
    # include<stdlib.h>
    int main()
    {
        int a,b,c=0,d=0,e=0;
        printf("输入一个正整数
    ");
        scanf("%d",&a);
        if(a<=0)
        {
            printf("输入错误
    ");
            exit (0);
         } 
        while(1)
        {
            if(a==1)
            {
                break;
            } 
            if(a%2==0)
            {
                b=a/2;
                c++;
            }
            else if(a%2!=0)
            {
                b=a*3+1;
                d++;
            }
            if(b==1)
            {
                break;
            } 
             a=b;
        }
        e=c+d;
        printf("有%d次",e);
        return 0;
     } 

    4.输入一个正整数n,输出2/1+3/2+5/3+8/5+…的前n项之和,保留2位小数,该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。 

    # include<stdio.h>
    # include<stdlib.h>
    int main()
    {
        float a=2,b=1,c,d,sum=0.0;
        int  m,n;
        printf("输入正整数
    ");
        scanf("%d",&n); 
        if(a<=0)
        {
            printf("输入错误
    ");
              exit (0); 
        } 
        for(m=1;m<=n;m++)
        {    
    sum
    =sum+a/b; c=b; d=a; a=a+c; b=d; } printf("%.2f ",sum); }

    5.凯撒密码(caeser)的原理:每一个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,……x加密后变成a,y加密后变成b,z加密后变成c。例如:“baidu”用凯撒密码法加密后字符串变为“edlgx”。试写一个算法,将键盘输入的文本字符串(只包含a~z的字符)进行加密后输出。 

    # include<stdio.h>
    int main()
    {
    
        char a;
        printf("输入一串字符判断
    ");
        while(1)
        {   
          scanf("%c",&a);
         if((a<'a'||a>'z')&&(a!='
    '))
         {    
            if(a>='A'&&a<='Z')
              {
                a=a;    
              }
             else
              {
                     fflush(stdin);
                     printf("输入错误
    ");
                     break;
              }
         }
         if ((a>='a'&&a<='w')||(a>='A'&&a<='W'))
            {
               a=a+3;
            }
         if((a>='x'&&a<='z')||(a>='X'&&a<='Z'))
          {
            a=a-23;
          }
         if(a=='
    ')
           {
             break;
           }
           printf("%c",a);
        }
           printf("
    ");
        return 0;
    } # include<stdio.h>
    int main()
    {
    
        char a;
        printf("输入一串字符判断
    ");
        while(1)
        {   
          scanf("%c",&a);
         if((a<'a'||a>'z')&&(a!='
    '))
         {    
            if(a>='A'&&a<='Z')
              {
                a=a;    
              }
             else
              {
                     fflush(stdin);
                     printf("输入错误
    ");
                     break;
              }
         }
         if ((a>='a'&&a<='w')||(a>='A'&&a<='W'))
            {
               a=a+3;
            }
         if((a>='x'&&a<='z')||(a>='X'&&a<='Z'))
          {
            a=a-23;
          }
         if(a=='
    ')
           {
             break;
           }
           printf("%c",a);
        }
           printf("
    ");
        return 0;
    } 

    实验总结:

    1.有一个题不会问的同学,程序很相似,

    2.在嵌套的循环中声明变量的位置要注意,有的在第二个循环前面,

    3.格式对齐,注意加分号,等于用两个等号,

    4.关于规律的寻找需要加强,

    5.字符型的转换规律它对应的值需要熟记,在声明变量时注意变量的值是1还是0

    6.在循环中注意输出的位置,不要在每次都有输出,

  • 相关阅读:
    第一个爬虫和测试
    数学规律
    自定义手绘
    tqqqy的成绩表
    Linux常用命令-netstat
    文档查看命令 cat more less tail head
    Linux三剑客-常用命令
    IO多路复用模型
    redis 的线程模型
    为什么需要缓存?
  • 原文地址:https://www.cnblogs.com/saber114567/p/6021301.html
Copyright © 2011-2022 走看看