<分区>
我的程序编译成功。它读取所有整数值,但每当我尝试输入字符时,它都会出现段错误。我不知道是什么问题。这是我的代码
#include <stdio.h>
struct soldier
{
int skill;
int superior;
};
struct soldier army[1000000];
int n;
int skillSum=0;
void findSkillSum(int);
int main()
{
int m,parent,child,s,update,i;
char command;
scanf("%d %d",&n,&m);
// struct soldier army[n+10];
for(i=1;i<=n;i++)
scanf("%d",&army[i].skill);
army[1].superior =0;
for(i=1;i<n;i++)
{
scanf("%d %d",&parent,&child);
army[child].superior = parent;
}
for(i=1;i<=m;i++)
{
scanf("%c",&command);
// s=command[2]-48;
if(command=='Q')
{
scanf("%d",&s);
findSkillSum(s);
printf("%d",skillSum);
printf("\n");
}
else
{
scanf("%d",&s);
scanf("%d",&update);
army[s].skill=update;
}
}
}
void findSkillSum(int s)
{
int i;
for (i=1;i<=n;i++)
{
if (army[i].superior==s)
{
skillSum+=army[i].skill;
findSkillSum(i);
}
}
}