首页 > 编程语言 >实验三 函数应用编程

实验三 函数应用编程

时间:2022-11-05 22:44:24浏览次数:30  
标签:return 函数 int 编程 long char 实验 func include

1.任务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中字符串 }
功能:主函数将随机数传递给定义的函数,产生对应的空格和空行,第三个函数指的是在打印时在第line行第col列打印一段文本hi,November 

2.任务二
Task2.1c
#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; }

分析: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;
}

第一次进入函数运行后,此时m=8,i=3,则第二次函数继续运行时以m=8,i=3继续结果为17

3.任务三:

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

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

注意:递推时的起始值


5.任务五

#include <stdio.h>
int mul(int n,int m);
int main(){
    int n,m;
    while(scanf("%d%d",&n,&m)!=EOF)
    printf("%d*%d=%d\n",n,m,mul(n,m));
    return 0;
}
int mul(int n,int m){
    if(m==0){
        return 0;
    }else{
        return n+mul(n,m-1);
    }
}

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

 






7.任务七
#include<stdio.h> #include<math.h> int is_prime(int n){ int i; for(i=2;i<=sqrt(n);i++){ if(n%i==0) break; } if(i<=sqrt(n)||i==1){ return 0; }else{ return 1; } } int main(){ int i=1; int m,t; for(i=2;i<=10;i++){ t=2*i; for(m=2;m<=i;m++){ if((is_prime(m)==1)&&(is_prime(2*i-m)==1)){ break; } } printf("%d=%d+%d\n",t,m,2*i-m); } }

 

 
8.任务8
#include <stdio.h> #include<math.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[100]; int n=0; int cout=0; int i; while(s>0){ if((s%10)%2==1){ m[cout++]=s%10; } s=s/10; } for(i=cout-1;i>=0;i--){ n+=pow(10,i)*m[i]; } return n; }

注意:在自定义的函数中使用数组输出时用for循环不可直接传输到主函数中

 

 



 

 

 

 

标签:return,函数,int,编程,long,char,实验,func,include
From: https://www.cnblogs.com/-piano-/p/16851954.html

相关文章

  • 两个数比较(调用函数比较)
    1.使用if...else...比较2.调用函数比较(1)调用函数应该放在主函数前面。在主函数中,调用max=Max(num1,num2)。......
  • 实验室服务彻底死机记录——硬件故障——主板pcie槽坏掉或显卡坏掉
    实验室的深度学习服务器这次是彻底坏掉了,以前死机都是会在log日志中找到些信息,这次死机死的干脆,什么log都没有就自动关机了,神奇的很,以前的服务器死机可能还算是假死,这次的死......
  • postgresql函数:满足特定格式的表及指定日期前的删除
    --一、现有函数--1、现有函数调用select"ap"."delete_analysis_backup"('ap');--2、函数内容CREATEORREPLACEFUNCTION"ap"."delete_analysis_backup"("schema_name"......
  • 实验4 类与数组、指针
    实验任务5vectorInt.hpp#pragmaonce#include<iostream>#include<cassert>usingnamespacestd;classvectorInt{public:vectorInt(intn);vectorIn......
  • 实验4 类与数组、指针
    task5VectorInt.h#pragmaonce#include<iostream>#include<cassert>usingnamespacestd;classVectorInt{public:VectorInt(intn);VectorInt(int......
  • 实验四
    task5:vectorInt.hpp#include<iostream>usingnamespacestd;classvectorInt{public:vectorInt(intn);vectorInt(intn,intvalue);vectorInt(......
  • 实验4 类与数组、指针
    实验任务51#pragmaonce2#include<iostream>34usingstd::cout;5usingstd::endl;67classvectorInt{8public:9//构造函数和析构函数1......
  • 实验三
    实验任务1:#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//*函数声明*......
  • 实验4
    //vectorInt.hpp#include<iostream>usingnamespacestd;classvectorInt{private:intsize;int*data;public:vectorInt(......
  • strcpy函数
    1.strcpy的一般用法#include<stdio.h>#include<string.h>intmain(){chararr1[]={"abcdefg"};//一般用法chararr2[]={"hehe"};printf("%s",strcpy(arr1,......