首页 > 其他分享 >第三次实验

第三次实验

时间:2023-11-04 17:36:17浏览次数:29  
标签:第三次 int long char 实验 func printf include

任务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,November~" ;
	srand(time(0));//以当前系统时间作为随机种子

	for(i=1;i<=10;++i)
	{
		line = rand()%25;
		col = rand()%80;
		print_text(line,col,text);
		Sleep(1000);//暂停1000ms 
	} 
	return 0;
} 

//打印n个空格
void print_spaces(int n)
{
	int i;
	for(i=1;i<=n;++i)
	printf(" ");
} 

//打印n行空白行
void print_blank_lines(int n) 
{
	int i;
	for(i=1;i<=n;i++)
	printf("\n");
}

//在第line行第col列打印一段文本
void print_text(int line,int col,char text[]){
	print_blank_lines(line-1);//打印line-1行空格 
	print_spaces(col-1);//打印col-1列空格 
	printf("%s",text);//在第line行、col列输出text中字符串 
}

作用:在频幕上随机打印hi,November~

 

任务2

//利用局部static变量的特性,计算阶乘 
#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.2

//练习:局部static变量特性 
#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特性:使用static时,调用完函数后,函数用用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-1); 
	}
	return 0;
} 

long long func(int n)
{
	long long m;
	if(n==0)
		m=1;
	else 
		m = 2*func(n-1);
	return m;
}

  

任务4.1

#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 a=1,b=1,c=1;
		int k;
	int i;
	for(i=1;i<=n;i++)
		a*=i;
		
	for(i=1;i<=m;i++)
		b*=i;
		
	for(i=1;i<=n-m;i++)
		c*=i;

	int sum;
	
	sum = a/(b*c);
	
	return sum;			
}

  

任务4.2

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

	else if(n==m||m==0)
	return 1;
	
	else
		return func(n-1,m) + func(n-1,m-1);
		
}

  

任务5

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

  

任务6

#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("new number is: %ld\n\n", t);
		printf("Enter a number: ");
	}
	return 0;
}

long func(long s)
{
	int m=0;
	int k;
	k = s;
	while(k!=0)
	{
		if((k%10)%2==1)
		{
			m = m*10+k%10;
			k/=10;
		}
		else
		{
			k/=10;
		} 	
	}
	
	int n;
	while(m!=0)
	{
		n = n*10+m%10;
		m/=10;
	}
	return n;
		
}

  

任务7

#include<stdio.h>
int main(){

    int n;
    int x;
    int y;
    int arr1[10];
    int arr2[6];
    int i,j,k;
    int t;

    for(n=45;n<100;++n){
        x=n*n;
        y=n*n*n;
        for(i=0;i<4;++i)
		{
            arr1[i]=x%10;
            x/=10;
        } 
        for(j=0;j<6;++j)
		{
            arr2[j]=y%10;
            y/=10;
        }

       
        for(i=4;i<10;++i)
            arr1[i]=arr2[i-4];

       
        for(j=0;j<9;++j)
		{
            for(i=0;i<9-j;++i)
			{
                if(arr1[i]>arr1[i+1])
				{
                    t=arr1[i];
                    arr1[i]=arr1[i+1];
                    arr1[i+1]=t;
                }
            }
        }

        k=0;
        for(i=0;i<10;i++){
            if(arr1[i]!=i) break;
            k++;
        }

        if(k==10)
            printf("%d\n",n);

    }

    return 0;
}

  

 

标签:第三次,int,long,char,实验,func,printf,include
From: https://www.cnblogs.com/hychychyc/p/17809576.html

相关文章

  • 实验3
    实验任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intco1,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){intline,co1,i;......
  • 数据采集与融合技术实验四
    作业①:要求:使用Selenium框架+MySQL数据库存储技术路线爬取“沪深A股”、“上证A股”、“深证A股”3个板块的股票数据信息。主要代码url_list=['http://quote.eastmoney.com/center/gridlist.html#hs_a_board','http://quote.eastmoney.com/center/gridlist......
  • 实验3 C语言函数应用编程
    任务11#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN8067voidprint_text(intline,intcol,chartext[]);8voidprint_spaces(intn);9voidprint_blank_lines(intn......
  • 实验3 类与数组、指针
    实验任务1Point.hpp1#pragmaonce23#include<iostream>4usingstd::cout;5usingstd::endl;67classPoint{8public:9Point(intx0=0,inty0=0);10~Point()=default;1112intget_x()const;13intget_y()co......
  • 实验三
    test1#include<stdio.h>#include<time.h>#include<stdlib.h>#include<windows.h>#defineN80voidtest_(intline,intcol,chartest[]);voidspace(intn);voidblank(intn);intmain(){intline,col,i;chartest[N]=&......
  • 实验三
     ......
  • 软件设计实验7:单例模式
    实验7:单例模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;  2......
  • 软件设计实验6:原型模式
     实验6:原型模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解原型模式的动机,掌握该模式的结构;2、能够利用原型模式解决实际问题。 [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量......
  • 实验三
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明intmain()......
  • 实验三
    任务一task1.cpp1#include<iostream>2#include"point.hpp"3#include<vector>4usingstd::vector;5usingstd::cin;6voidoutput(constvector<Point>&v){7for(auto&t:v)8t.show();9}10voidtest()......