首页 > 代码库 > 第五次作业

第五次作业

 

 

实验一:

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

#include<stdio.h>
int main()
{
    int m,n,j,s1,sum=0;
    printf("请输入两个正整数m和n,且m<n\n");
    scanf("%d%d",&m,&n);
    if(m<0||n<0||m>n)
    {
        printf("请按要求输入m和n的值");
    }
    else
    {
    for(;m<=n;m++)
    {
        s1=1; 
        for(j=1;j<=m;j++)
        {
            s1=s1*j;
        }
        sum=s1+sum;
     }
         printf("所求阶乘的值为%d",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\n");
    scanf("%d",&x);
    i=0; 
    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("请输入一个正整数\n");
    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;
  }  

技术分享

 

附加题二:

#include<stdio.h>
int main()
{
    char letter;
    printf("请输入字符\n");
    scanf("%c",&letter);
    while(letter!=\n) 
    {
        if(letter==x)
        {
            letter=97;
        }
        else if(letter==y)
        {
            letter=98;
        }
        else if(letter==z)
        {
            letter=99; 
        }
        else
        {
            letter=letter+3;
        }
        printf("%c",letter);
        scanf("%c",&letter);
    }
    return 0;
} 

 

识点总结:

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

2  当for语句的括号里不够三                                                                                                                                                       个语句时也要把两个

 

第五次作业