实验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("%lld",p);
p=p*n;
return p;
}

 

#include<stdio.h>
int func(int x,int y);
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 x,int y)
{static int m=0,i=2;
i+=m+1;
m=i+x+y;
return (m);
}

 satic变量的作用是使变量始终存在,当再次进入函数时保留上次的值。

#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=0;
for(i=0;i<n;i++)
printf("%c",symbol);

}

 

#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)-1;
printf("n=%d,f=%lld\n",n,f);

}return 0;
}
long long fun(int n)
{int m,f,k=1;
if(n==0)
return 1;
else{ f= 2*fun(n-1);

}return f;
}

 

#include<stdio.h>
int isprime(int n);
int main()
{int n,m,k;
for(n=101,k=0;n<=200;n++)
{m=isprime(n);
if(m==1)
{printf("%d\t",n);
k++;
}
}

printf("\n101到200有%d个非素数",k);
return 0;
}
int isprime(int n)
{int m=0,k,l,o=0;

for(l=2;l<n-2;l++)
if(n%l==0)
o++;
if(o!=0)
return 1;
else return 0;

}

 

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

 

#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,i;double o=0,s;
for(m=n;m>0;m--)
{for(i=1,s=1;s<=n;s++)
{i=-1*i*s;

}o=-1/i+o;
n--; 
}
return o;
}

 

posted @ 2021-11-24 20:04  姜帆202183290535  阅读(25)  评论(2编辑  收藏  举报