• 实验4 函数和数组


    1.实验任务1

    这个应用中,一元二次方程的根不能设计成以函数返回值的方式返回给主调函数。

    2.实验任务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
    ", i, fac(i)); 
        
        return 0;
    }
    
    // 函数定义 
    long long fac(int n) {
        static long long p = 1;
        printf("p = %lld
    ", p);
        p = p*n;
        
        return p;
    }

    #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
    ",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.实验任务3

    //寻找两个整数之间的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。
    // 例如,输入6和21,则输出为:7 11 13 17 19。
    
    #include <stdio.h>
    
    #define N 1000
    int fun(int n,int m,int bb[N]) {
        int i,j,k=0,flag;
        
        for(j=n;j<=m;j++) {
                 flag=2;
            for(i=2;i<j;i++)
                if(j%i==0) {  
                   flag=0;
                   break;
            }
            if(flag!=0) 
               bb[k++]=j;
        }
        return k;
    }
    
    int main(){
        int n=0,m=0,i,k,bb[N];
        
        scanf("%d",&n);
        scanf("%d",&m);
        
        for(i=0;i<m-n;i++)
            bb[i]=0;
            
        k=fun(n,m,bb); 
        
        for(i=0;i<k;i++)
            printf("%4d",bb[i]);
            
        return 0;
    }

    4.实验任务4

    #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, f);
        }
        
        return 0;
    }
    
    long long fun(int n){
        long long k;
        if(n==0){
            k=0;
        }
        if(n==1){
            k=1;
        }
        if(n>=2){
            k=2*fun(n-1)+1;
        }
        return k;
    }

    5.实验任务5

    #include <stdio.h>
    
    void draw(int n, char symbol);   
    
    #include <stdio.h> 
    int main() {
        int n, symbol;
        
        while(scanf("%d %c", &n, &symbol) != EOF) {
            draw(n, symbol); 
            
            printf("
    ");
        }
        
        return 0;
    } 
    
    void draw(int n,char symbol){
        int i,k,t;
        for(i=1;i<=n;i++){
            for(k=1;k<=n-i;k++){
                printf(" ");
            }
            for(t=1;t<=2*i-1;t++){
                printf("%c",symbol);
            }printf("
    ");
            }
        }

  • 相关阅读:
    编译器内置宏实现调试信息输出
    走进C标准库(4)——"stdio.h"中的putc
    走进C标准库(5)——"stdio.h"中的其他部分函数
    走进C标准库(2)——"stdio.h"中的fopen函数
    [转]深度探索C语言函数可变长参数
    C语言I博客作业02
    C语言I博客作业02
    第一周c语音作业
    什么是模块化,模块化的好处又是什么?
    服务端渲染和客户端渲染
  • 原文地址:https://www.cnblogs.com/qiansen/p/14054944.html
Copyright © 2020-2023  润新知