第五次作业

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

#include <stdio.h>
int main()
{
 int m,n,i,x,p;
 double y=0;
 printf("请输入两个整数m,n,且m<=n ");
 scanf("%d %d",&m,&n);
 if(m>0&&n>0)
 {
 if (m>n)
 {
  p=m;
  m=n;
  n=p;
 }
    while (m<=n)
    {
     x=1;
     for (i=1;i<=m;i++)
     {
      x=x*i;
     }
     m++;
     y+=x;
    }
 printf("%f",y);
    }
    else
    {
     printf("数据错误");
 }
 return 0;
}

 

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

#include <stdio.h>
int main()
{
    int i,j,sum;
    for (i=1;i<=1000;i++)
    {
        sum=0;
    for (j=1;j<i;j++)    
    {
        if(i%j==0)
        {
        sum+=j;
        }
    }
        if(sum==i)
        {
        printf("%4d
",i);
        }
    }
    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 n,i=0;
 printf("请输入一个正整数 ");
 scanf("%d",&n);
 if(n<=0)
 {
 printf("数据错误");
    }
 while(n!=1)
 {
  i++;
  if(n%2==0)
  {
  n=n/2;
  printf("%d=%d/2 ",n,n);
  }
  else
  {
  n=3*n+1;
  printf("%d=3*%d+1 ",n,n);
  }
 }
 printf("这个n需要%d步能归一",i);
 return 0;
}

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

#include <stdio.h>
int main()
{
    int n,i,j=1,k=2,f;
    float sum=0;
    printf("请输入正整数
");
    scanf("%d",&n);
    i=2;
    while (i<=n)
    {
        f=j;
        j=k;
        k=f+k;
        sum=sum+(float)k/j;
        i++;
    }
    sum=sum+2;
    printf("%.2f",sum);
    return 0;
}

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

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

实验总结:1 注意给变量赋初值的位置!

              2 格式要整齐,大括号对齐写!

              3 使用while时注意如何套循环!

              4 可以用float强制转换!

              5 附加题2要分别输出!

              6 可以借助程序框图做题!            

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