等比数列(循环)
#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);
}