第一次提交的时候,有一个小的毛病,就是在第二个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 ",a[1][1]); } }