ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实验3

2022-04-19 22:35:08  阅读:64  来源: 互联网

标签:函数 int void long char 实验 include


//task1//
#include <time.h> #include <windows.h> #define N 80 void printText(int line, int col, char text[]); // 函数声明 void printSpaces(int n); // 函数声明 void printBlankLines(int n); // 函数声明 int main() { int line, col, i; char text[N] = "hi, May~"; srand(time(0)); // 以当前系统时间作为随机种子 for(i=1; i<=10; ++i) { line = rand()%25; col = rand()%80; printText(line, col, text); Sleep(1000); // 暂停1000ms } return 0; } // 打印n个空格 void printSpaces(int n) { int i; for(i=1; i<=n; ++i) printf(" "); } // 打印n行空白行 void printBlankLines(int n) { int i; for(i=1; i<=n; ++i) printf("\n"); } // 在第line行第col列打印一段文本 void printText(int line, int col, char text[]) { printBlankLines(line-1); // 打印n-1行空行 printSpaces(col-1); // 打印n-1列空格 printf("%s", text); }

 

 功能:在0~24行,0~79中随机打印10个"hi, May~",并且重复此操作10次。

task2

// 练习:局部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变量,初始值只用于第一次运算,后续运算时,保留上次结果。

task3

#include <stdio.h> 
long long fun(int n); // 函数声明 
int main()
{ 
   int n; 
   long long f; 
   while (scanf("%d", &n) != EOF) 
         { 
            f = fun(n); // 函数调用 
            printf("n = %d, f = %lld\n", n, f);
        }
    return 0;
}


// 函数定义 
 long long fun(int n)
 {
    int j=0;
    long long sum=1;
    for(j=0; j<n; j++)
    {
        sum=sum*2;
    }
    sum=sum-1;
    
    return sum;
 }

 

 task4

#include <stdio.h>
void hanoi(unsigned n, char from, char temp, char to);  // 函数声明 
void moveplate(unsigned n, char from ,char to);  // 函数声明 
int sum(int n);

int main() 
{
    unsigned n;  // 盘子数目
    while (scanf("%u", &n) != EOF)
    {
        hanoi(n, 'A', 'B', 'C');
        printf("一共移动盘子的次数:%ld\n",sum(n));
    }    
    
      0;
}

// 函数定义
// 功能描述:把n个盘子,从from →to, 借助temp
void hanoi(unsigned 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); 
    }
}

// 函数定义
// 功能描述:把第n个盘子,从from →to
void moveplate(unsigned n, char from, char to) {
    printf("第%u个盘子: %c --> %c\n", n, from, to);
}

// 函数定义
// 功能描述:记录移动次数 
int sum(int n)
{
    int m;
    if(n==1)
      m=1;
    else
      m=2*sum(n-1)+1;
    return m;
    
}

 

 task5

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define N 20
int is_prime(int x);

int main()
{
    int i, j, m, n;
    int fm, fn, fi;
    for(i=4; i<=N; i+=2)
    {
        for(m=2; m<=i; m++)
        {
            n=i-m;
            fm=is_prime(m);
            fn=is_prime(n);
            if(fm==1&&fn==1)
              {
                  printf("%d =%d + %d\n", i, m, n);
                  break;
              }
        }
    }
}

int is_prime(int a)
{
    int b, k, Flag=1;
    k=sqrt(a);
    if(a==2)
       return Flag=1;
    else
       for(b=2;b<=k;b++)
      {
        if((a%b)==0) 
          {Flag=0;
          break;}
        
      }
     return Flag;
 }

 

 

 task6

 

#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 i, j=0, k=0;
    do
    {
        i=s%10;
        s=s/10;
        if(i%2!=0)
          {
             k+=i*pow(10,j);
             j++;
          }        
    }
    while(s>0);
    
    return k;
}

 

标签:函数,int,void,long,char,实验,include
来源: https://www.cnblogs.com/gan123456lu/p/16167706.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有