实验任务1
源代码
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> #define N 80 void print_text(int line, int col, char text[]); void print_spaces(int n); void print_blank_lines(int n); int main() { int line, col, i; char text[N] = "hi, April~"; srand(time(0)); for(i = 1; i <= 10; ++i) { line = rand() % 25; col = rand() % 80; print_text(line, col, text); Sleep(1000); } return 0; } void print_spaces(int n) { int i; for(i = 1; i <= n; ++i) printf(" "); } void print_blank_lines(int n) { int i; for(i = 1; i <= n; ++i) printf("\n"); } void print_text(int line, int col, char text[]) { print_blank_lines(line-1); print_spaces(col-1); printf("%s", text); }
功能:分别在0~24行,0~79列中随机选一行一列,在第line行打印(line-1)行空行,第col列打印(col-1)列空格,在第line行第col列输出“hi, April~”,重复运行10次,每次间隔1000ms
实验任务2
task2_1.c源代码
#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; }
增加一行源代码后运行截图
task2_2.c源代码
#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变量特性:对变量只赋初值一次,再次调用函数时保留上次函数运行结束时的值
实验任务3
源代码
#include<stdio.h>long long func(int n); int main(){
int n;
long long f;
while(scanf("%d",&n)!=EOF){
f=func(n);
printf("n=%d,f=%lld\n",n,f);
}
return 0;
} long long func(int n){
long long f;
if(n==0)
f=0;
else
f=(func(n-1)+1)*2-1;
return f;
}
运行截图
实验任务4
源代码
#include<stdio.h> int func(int n,int m); int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF) printf("n=%d,m=%d,ans=%d\n",n,m,func(n,m)); return 0; } int func(int n,int m){ int ans; if(m==n||m==0) ans=1; else if(m>n) ans=0; else ans= func(n-1,m)+func(n-1,m-1); return ans; }
运行截图
实验任务5
task5_1源代码
#include <stdio.h> double mypow(int x,int y); int main(){ int x, y; double ans; while(scanf("%d%d", &x, &y) != EOF) { ans = mypow(x, y); printf("%d的%d次方: %g\n\n", x,y,ans); } return 0; } double mypow(int x,int y){ int i,j; double ans=1; if(y>=0) for(i=1;i<=y;i++) ans=ans*x; else{ for(j=1;j<=(-y);j++) ans=ans*x; ans=1.0/ans; } return ans; }
运行截图
task5_2源代码
#include<stdio.h> double mypow(int x,int y); int main(){ int x, y; double ans; while(scanf("%d%d", &x, &y) != EOF) { ans = mypow(x, y); printf("%d的%d次方: %g\n\n", x,y,ans); } return 0; } double mypow(int x,int y){ double ans; if(y==0) ans=1; else if(y>0) ans=x*mypow(x,y-1); else ans=1/mypow(x,-y); return ans; }
运行截图
实验任务6
源代码
#include<stdio.h> #include<stdlib.h> #include<math.h> void hanoi(unsigned int n,char from,char temp,char to); void moveplate(unsigned int n,char from,char to); int main(){ unsigned int n; int a=0; while(scanf("%u",&n)!=EOF){ hanoi(n,'A','B','C'); printf("\n"); a=pow(2,n)-1; printf("一共移动了%d次\n\n",a); } return 0; } void hanoi(unsigned int n,char from,char temp,char to){ if(n==1) moveplate(n,from,to); else{ hanoi(n-1,from,to,temp); moveplate(n,from,to); hanoi(n-1,temp,from,to); } } void moveplate(unsigned int n,char from,char to){ printf("%u:%c-->%c\n",n,from,to); }
运行截图
实验任务7
源代码
#include<stdio.h> #include<math.h> #include<stdlib.h> int is_prime(int n); int main(){ int j,k; while(scanf("%d",&j)!=EOF){ for(k=1;k<=j;k++) if(is_prime(k)&&is_prime(j-k))break; printf("%d=%d+%d\n",j,k,j-k); } return 0; } int is_prime(int n){ int i; double m; m=sqrt(n); for(i=2;i<=m;i++) if(n%i==0)break; if(n!=1&&i>m) return 1; else return 0; }
运行截图
实验任务8
源代码
#include<stdio.h> #include<math.h> long func(long s); int main(){ long s,t; printf("Enter a number:"); while(scanf("%ld",&s)!=EOF){ t=func(s); printf("nem number is: %ld\n\n",t); printf("Enter a number:"); } return 0; } long func(long s){ long b=0,t=0; int a,m; while(s!=0){ a=s%10; if(a%2!=0) b=10*b+a; s=s/10; } while(b!=0){ m=b%10; t=10*t+m; b=b/10; } return t; }
运行截图
标签:return,int,long,实验,func,ans,include From: https://www.cnblogs.com/yuetong/p/17273420.html