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

    实验一:

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

    #include<stdio.h>
    int main()
    {
     int m,n,j,s1;
     float sum=0;
     printf("请输入两个正整数m和n,且m<n ");
     scanf("%d%d",&m,&n);
     while(m<0||n<0||m>n)
     {
      printf("请按要求输入m和n的值 ");
      scanf("%d%d",&m,&n);
     }
     for(;m<=n;m++)
     {
      s1=1;
      for(j=1;j<=m;j++)
      {
       s1=s1*j;
      }
      sum=s1+sum;
      }
       printf("所求阶乘的值为%f",sum);
     
      return 0;
     }

     

    实验二:

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

    #include<stdio.h>
    int main()
    {
        int m,i,s;
      printf("1000以内所有完数有:");
    for(m=1;m<=1000;m++) { s=0; for(i=1;i<m;i++) { if(m%i==0) { s=s+i; } } if(s==m) { printf("%d 0",m); } } 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>
    int main()
    {
        int x,i; 
        printf("请输入一个正整数x
    ");
        scanf("%d",&x);
        i=0; 
        if(x<=0)
        {
            printf("请输入正整数"); 
        }
        do
            {
                if(x%2==0)
            {
                x=x/2;
            }
            else
            {
                x=3*x+1;
            }
            i++;
        }while(x!=1);
        printf("这个x经过%d步能归一",i);
        return 0;
    }

    附加题一:

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

    #include<stdio.h>
    int main()
    {
        int n,i;
        float sum=0,a=2.00,b=1.00,c;
        printf("请输入一个正整数
    ");
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            sum=a/b+sum;
            c=a+b;
            b=a;
            a=c;
         } 
         printf("前n项之和为%.2f",sum);
         return 0;
      }  

    附加题二:

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

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
       char letter;
       printf("请输入字符 ");
       scanf("%c",&letter);
       while(letter!=' ')
      {
      if(letter>='a'&&letter<='w')
      {
       letter=letter+3;
       printf("%c",letter);
      }
      else if(letter>='x'&&letter<='z')
      {
       letter=letter-23;
       printf("%c",letter);
      }
      else
      {
       printf("请完全输入小写字符 ");
       fflush(stdin);  
      }
          scanf("%c",&letter);
     }
     return 0;
    }

    识点总结:

    1  循环语句的嵌套是当执行内层循环到不符合条件后执行外层循环,之后再执行 内层循环;

    2  当for语句的括号里不够三个语句时不要忘记两个分号;          

    3  当变量需要赋值时必要时要靠近语句赋值;                                                                                                                                        个语句时也要

    4  do  while语句后要加分号;

    5  字符型变量后加一个=再加上数字代表的是那个数字所对应的字符

    6  适当地方要记得用清屏语句fflush(stdin); 这个语句包含在#include<stdlib.h>库文件夹中;

      

  • 相关阅读:
    字符串通配
    最短排序
    最长回文子串
    添加回文串
    找零钱
    最优编辑
    01背包
    PHP做分页查询(查询结果也显示为分页)
    PHP 练习3:租房子
    Html5学习3(拖放、Video(视频)、Input类型(color、datetime、email、month 、number 、range 、search、Tel、time、url、week ))
  • 原文地址:https://www.cnblogs.com/myfdpk/p/6020942.html
Copyright © 2011-2022 走看看