等比数列(循环)

等比数列(循环)

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int a=0;
    int c=0;
    int d=0;
    void A(int,int);
    void S(int,int);
    int out=0;
    do{
        printf("请输入模式:1:求第n项;2.求前n项和\n");
        scanf("%d",&d);
        while(d!=1&&d!=2){
            printf("请输入正确模式:1:求第n项;2.求前n项和\n");
            scanf("%d",&d);
            if(d==1||d==2){
                break;
            }else{
                continue;
            }
        }
        printf("请输入a=");
        scanf("%d",&a);
        while(a<=0){
            printf("请输入正确的a=");
            scanf("%d",&a);
        }
        printf("请输入n=");
        scanf("%d",&c);
        while(c<=0){
            printf("请输入正确的n=");
            scanf("%d",&c);
        }
        switch(d)
        {
            case 1:A(a,c);break;
            case 2:S(a,c);break;
        }
        printf("继续请按1,退出请按其他数字\n");
        scanf("%d",&out);
        c=0;
        d=0;
    }while(out==1);
    return 0;
}

void A(int a,int c){
    int cnt=1;
    int sum=1;
    if(c==1){
        printf("第%d项是1",c);
    }
    else
    {
        do{
            sum=sum*a;
            cnt++;
        }while(cnt<=c-1);
        printf("第%d项是%d\n",c,sum);
    }
}

void S(int a,int c){
    int sum=0;
    int cnt=1;
    int A=1;
    if(c==1){
        printf("前1项和是1\n");
    }else{
        do{
            sum=sum+A;
            A=A*a;
            cnt++;
        }while(cnt<=c);
    }
        printf("前%d项和是%d\n",c,sum);
}

猜你喜欢

转载自blog.csdn.net/qq_43266760/article/details/82824046