task1:

源代码:

#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,November~";
	
	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);
}

实验截图:

task2:

源代码:

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

实验截图:

task3:

源代码:

#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){
	if(n == 0)
		return 0;
	if(n == 1)
	    return 1;
	if(n > 1)
	    return 2*func(n-1)+1;
}

实验截图:

task4_迭代

源代码:

#include<stdio.h>
int func(int n,int m);
int fac(int);
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 fac(int n){
	int i,p = 1;
	for(i = 1;i<=n;++i)
	    p = p*i;
	return p;
}
int func(int n,int m){
	return fac(n)/(fac(m)*fac(n-m));
}

实验截图:

task4_递归

源代码:

#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){
    if(n < m)
    return 0;
    if(m == 0)
    return 1;
    if(m == 1)
    return n;
    if(m == n)
    return 1;
    else
    return func(n - 1,m) + func(n-1,m-1);
}

实验截图:

task5:

源代码:

#include<stdio.h>  
#include<stdlib.h>  
  
int i = 0;  
  
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;  
 while(scanf("%u",&n)!=EOF){
 	hanoi(n,'A','B','C');   
    printf("一共移动了 %d 次\n", i); 
    i = 0;
 } 
 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);  
 }  
 i++;  
}  
  
void moveplate(unsigned int n,char from,char to){  
 printf("%u:%c-->%c\n",n,from,to);  
}

实验截图:

task6:

源代码:

#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(func(s));
	    printf("new number is:%ld\n\n",t);
	    printf("Enter a number:");
	}
	return 0;
}
long func(long s){
	int digits = (int)(log10(s) + 1);  
    long result = 0;  
    for (int i = 0; i < digits; i++) {  
        int digit = (int)(s % 10);  
        if (digit % 2 == 1) {   
            result = result * 10 + digit;  
        }  
        s /= 10;  
    }  
    return result;
}

实验截图:

posted on 2023-10-30 21:25  神里凌华  阅读(25)  评论(0)    收藏  举报