实验6 控制结构综合程序设计

6-1 使用函数输出一个整数的逆序数(20 分)
int reverse( int number ){
    int num=0;
    while(number!=0){
        num=num*10+number%10;
        number/=10;
    }
    return num;
}
6-2 使用函数验证哥德巴赫猜想(20 分)
int prime( int p ){
    if(p==1){
        return 0;
    }
    for(int i=2;i
6-3 使用函数输出指定范围内的完数(20 分)

//求因数和 
int factorsum( int number ) {
    int sum=0;
    for(int i=1; i<=number/2+1; i++) {
        if(number%i==0) {
            sum+=i;
        }
    }
    return sum;
}

void PrintPN( int m, int n ) {
    int flag=0;//如果没有找到完数,flag=0 
    for(int i=m; i<=n; i++) {
        if(i==factorsum(i))//如果因数和等于自身,则为完数 
        {
            flag=1; //找到完数,flag=1 
            printf("%d = ",i);
            for(int j=1; j<=i/2+1; j++) {
                if(i%j==0) {
                    //找到因子输出 
                    if(j==1){
                        printf("%d",j); 
                    } else{
                        printf(" + %d",j);
                    }           
                }
            }
            //每输出好一个算式,换行 
            printf("\n");
        }
    }
    //如果flag=0,表示没有找到,输出no...... 
    if(!flag){
        printf("No perfect number"); 
    }
}
6-4 使用函数输出指定范围内的Fibonacci数(20 分)
int fib(int n) {
    if (n == 1 || n == 2) {
        return 1;
    }
    if (n > 2) {
        return fib(n - 1) + fib(n - 2);
    }
    //斐波那契数列的递归方法,更好记,但是运行速度更慢 
}
void PrintFN(int m, int n) {
    int i = 1, count = 0;
    while(fib(i)<=n){
        if (fib(i) >= m && fib(i) <= n) {
            count++;
            if(count==1){
                printf("%d", fib(i));
            }else{
                printf(" %d", fib(i));
            }
            
        }
        i++;
    }
    if (count == 0) {
        printf("No Fibonacci number");

    }
}
7-1 近似求PI(15 分)
#include 
#include 

 
double fun1(int num){
    double sum=1;
    for(int i=1;i<=num;i++){
        sum*=i;
    }
    return sum;
    //计算分子 
}
double fun2(int num){
    double sum=1;
    for(int i=1;i<=num;i++){
        sum*=2*i+1;
    }
    return sum;
    //计算分母 
}
int main()
{   double eps;
    scanf("%le", &eps);
    double PI=1,item=1,i=1;
    while(fabs(item)>eps){
        item=fun1(i)/fun2(i);
        PI+=item;
        i++;
    }
    printf("PI = %.5f",2*(PI));
    return 0;
}

7-2 统计一行文本的单词个数(15 分)
#include 

int main()
{   char ch,oldch=' ';
    int count=0;
    while((ch=getchar())!='\n'){
        if(ch!=' '&&oldch==' '){
            count++;
        }
        oldch=ch;
    }
    
    printf("%d",count);
    
    
    return 0;
}

/*
 ============================================================================
 Name        : 简单计算器.c
 Author      :  lzh
 Version     :
 Copyright   : Your copyright notice
 Description : Hello World in C, Ansi-style
 ============================================================================
 */

#include 
#include 

int main(void) {
     int a, b, sum;
        char opt;
        scanf("%d", &a);
        sum = a;
        scanf("%c", &opt);
        int iErr = 1;

        while (opt != '=') {
            scanf("%d", &b);
            if (opt == '+')
                sum += b;
            else if (opt == '-')
                sum -= b;
            else if (opt == '*')
                sum *= b;
            else if (opt == '/') {
                if (b == 0) {
                    iErr = 0;
                    break;
                } else {
                    sum /= b;
                }
            } else {
                iErr = 0;
                break;
            }
            scanf("%c", &opt);
        }

        if (!iErr)
            printf("ERROR\n");
        else
            printf("%d\n", sum);
    return EXIT_SUCCESS;
}

你可能感兴趣的:(实验6 控制结构综合程序设计)