杭电2084 数塔

第一次提交的时候,有一个小的毛病,就是在第二个for循环中没有再定义i,后来百度才知道

这个错误是因为在当前for循环里面直接定义了i,i的作用范围就只在这一个for循环里面,如果在下一个for循环里面之间用i,就会报错

下面是更改后的代码

#include<stdio.h>

int max(int a,int b)

{

    if(a>=b)

        return a;

        else

           return b;

}



int main()



{



    int t,num,k,a[105][105];



    scanf("%d",&t);



    while(t--)



    {



        int sum=0;



        scanf("%d",&num);



        k=num;



            for(int i=1;i<=k;i++)



            {   for(int j=1;j<=i;j++)



            scanf("%d",&a[i][j]);}



        for(int i=k-1;i>=1;i--)



        {

            for( int j=1;j<=i;j++)

             a[i][j]+=max(a[i+1][j],a[i+1][j+1]);//从倒数第二行开始,前一行从其相邻的后一行中选择最大的值累加



        }

        printf("%d\n",a[1][1]);

    }



}

  

 

你可能感兴趣的:(杭电)