有人可以看看错在哪了么

怎么写都说是错的,不知道错在哪了,有人可以看看么,知道我一下,我真的不会了

img

img

img

if 中N==0不是对,应该是N>=0
当输入n为0时不需要循环计算了,直接输出sum的初始值0

img

参考代码

#include <stdio.h>
#include <math.h>

int main()
{
    int a, n, i, sum = 0;
    scanf("%d", &a);
    scanf("%d", &n);
    if (a >= 1 && a <= 9 && n >= 0 && n <= 20)
    {
        for (i = 1; i <= n; i++)
            sum += pow(a, i);
        printf("sum = %d\n", sum);
    }
    else
        printf("输入错误\n");
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

#include<stdio.h>

int main(){
    int A = 0;
    int N = 0;
    int i = 0;
    int sum = 0;
    int temp = 0;
    
    scanf("%d%d",&A,&N);
    sum = 0;
    temp = 1;
    for(i = 1;i<=N;i++){
        temp *= A;
        sum += temp;
    }
    
    printf("sum = %d",sum);
    return 0;
    
} 

这个试试

#include<stdio.h>
#include<math.h>
int cal(int a,int n)
{
    return (int)pow(a,n);
}
int main()
{
    int a,n,sum=0;
    scanf("%d%d",&a,&n);
    if(n==0)
    {
        sum=cal(a,n);
    }
    else
        for(int j=1; j<=n; j++)
        {
            sum+=cal(a,j);
        }
    printf("sum = %d",sum);
    return 0;
}