实验三

实验三

实验结论

实验任务1

1.源代码

#include<stdio.h>
long long fac(int n);
int main()
{
    int i,n;
    
    printf("Enter n:");
    scanf("%d",&n);
    
    for(i=1;i<=n;i++)
        printf("%d!=%lld\n",i,fac(i));
    
    return 0;
}
long long fac(int n)
{
    static long long p=1;
    p=p*n;
    return p;
}

截图

源代码改

#include<stdio.h>
long long fac(int n);
int main()
{
    int i,n;
    
    printf("Enter n:");
    scanf("%d",&n);
    
    for(i=1;i<=n;i++)
        printf("%d!=%lld\n",i,fac(i));
    
    return 0;
}
long long fac(int n)
{
    static long long p=1;
    printf("p=%lld\n",p);
    p=p*n;
    return p;
}

截图改

 2.源代码

#include<stdio.h>
int func(int,int);
int main()
{
    int k=4,m=1,p1,p2;
    
    p1=func(k,m);
    p2=func(k,m);
    printf("%d,%d\n",p1,p2);
    
    return 0;
}
int func(int a,int b)
{
    static int m=0,i=2;
    i+=m+1;
    m=i+a+b;
    return m;
}

截图

 结果一致

3.static只确定一次值

实验任务2

1.源代码

#include<stdio.h>
void printsymbol(int n,char symbol);
int main()
{
    int n;
    char symbol;
    
    while(scanf("%d %c",&n,&symbol)!=EOF)
    {
        printsymbol(n,symbol);
        printf("\n");
    }
    return 0;
}
void printsymbol(int n,char symbol)
{
    int i;
    for(i=1;i<=n;i++)
        printf("%c",symbol);
}

截图

 2.源代码

#include<stdio.h>
void printsymbol(int n,char symbol);
int main()
{
    int n;
    char symbol;
    
    while(scanf("%d %c",&n,&symbol)!=EOF)
    {
        printsymbol(n,symbol);
        printf("\n");
    }
    return 0;
}
void printsymbol(int n,char symbol)
{
    if(n==1)
        printf("%c",symbol);
    else
    {
        printf("%c",symbol);
        printsymbol(n-1,symbol);
    }
}

截图

 实验任务3

1.源代码

#include<stdio.h>
long long fun(int n);
int main()
{
    int n;
    long long f;
    
    while(scanf("%d",&n)!=EOF)
    {
        f=fun(n);
        printf("n=%d,f=%lld\n",n,f);
    }
    return 0;
}
long long fun(int n)
{
    long long ans=1;
    if(n==1)
        ans=1;
    else
        ans=2*fun(n-1)+1;
    return ans;
}

2.截图

 实验任务4

1.源代码

#include<stdio.h>
int isPrime(int n);
int main()
{
    int m;
    int s;
    int i;
    for(i=101;i<=200;i++)
    {
        m=0;
        m=isPrime(i);
        if(m==1)
        {
            printf("%d ",i);
            s++;
            if(s%10==0)
                printf("\n");
        }
    }
    printf("\n");
    printf("101~200之间一共有%d个非素数",s);
    return 0;
}
int isPrime(int n)
{
    int i;
    int t=0;
    for(i=2;i<n;i++)
    {
        if(n%i==0)
            t=1;
    }
    return t;
}

2.截图

 实验任务5

1.源代码

#include<stdio.h>
long fun(long s);
int main()
{
    long s,t;
    
    printf("Enter a number:");
    while(scanf("%ld",&s)!=EOF)
    {
        t=fun(s);
        printf("new number is:%ld\n\n",t);
        printf("Enter a number:");
    }
    
    return 0;
}
long fun(long s)
{
    int t,m=1,i;
    long p=0;
    while(s!=0)
    {
        t=s%10;
        s=s/10;
        if(t%2==1)
        {
            for(i=1;i<m;i++)
                t=t*10;
            p=t+p;
            m++;
        }
    }
    return p;
}

2.截图

 实验任务6

1.源代码

#include<stdio.h>
double fun(int n);
int main()
{
    int n;
    double s;
    
    printf("Enter n(1~10):");
    while(scanf("%d",&n)!=EOF)
    {
        s=fun(n);
        printf("n=%d,s=%f\n\n",n,s);
        printf("Enter n(1~10):");
    }
    
    return 0;
}
double fun(int n)
{
    double m=1;
    double ans=0;
    double i;
    if(n==1)
        ans=1;
    else
    {
        for(i=2;i<=n;i++)
        {
            m*=-1/i;
        }
        ans=m+fun(n-1);
    }
    return ans;
}

2.截图

实验总结

理解并会使用函数,递归等知识,还需多注意细节

posted @ 2021-11-24 19:37  花落似流年  阅读(24)  评论(0编辑  收藏  举报