实验任务3

#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;
 }

#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);
 }

 

static的变量的特性是使局部变量变成了静态的局部变量。

#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;
 } 
 

 

#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);
     }
 }

 

递归更好。递归能让问题变得更加简单。

#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);
    }
} 

long long fun(int n)
{
    if(n==1)
    return 1;
    else
    return(2*fun(n-1)+1); 
}

 

 

#include<stdio.h>
#include<math.h>
int isPrime(int n);
int main()
{
    int i,n,m;
    m=0;
    for(n=101;n<=200;n++)
    {
        i=isPrime(n);
        if(i==0)
        {
          printf("%4d",n);
          m++;
          if(m%10==0)
          printf("\n");
        }      
    }
    printf("\n");
    printf("101-200之间的素数共有 %d",m);
    
    return 0;
} 

int isPrime(int n)
{
    int i;
    for(i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
        {
        return 0;
        break;
        }
    }
    return 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 m,num,i;
    i=1;
    num = 0;
    while(s>0)
    {
        m=s%10;
        if(m%2==1)
        {
        num = num + m*i;
        i=i*10;
        }
        s=s/10;
    }
    return num;
}

 

#include <stdio.h>
#include<math.h>
double fun(int n);//计算结果的函数 
long long fac(int x);//计算阶乘的函数 
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)//结果函数 
{
    int m,i,k;
    m=0;
    k=1;
    double result;
    result = 0;
    if(n==1)
    return result = 1;
    else
    {
     for(i=1;i<=n;i++)
      {
        result=result+pow(-1,m)*(1.0/fac(k));
        m++;
        k++;
      }
      return result;
    }
}

long long fac(int x)//阶乘函数 
{
    if(x==1)
    return 1;
    else
    return x*fac(x-1);
}

 懂得递归思路,初步会用递归思想解决问题。能够进一步懂得函数的声明与调用。

posted @ 2021-11-29 17:34  可可yyds  阅读(11)  评论(1编辑  收藏  举报