#include
#include
int main()
{
int N,i;
scanf("%d",&N);
struct student
{
char r[20];
int b,c,d;
} stu[N];
for(i=0; istrcpy(stu[i].r,"\0");
}
for(i=0; iscanf("%s %d %d",stu[i].r,&stu[i].b,&stu[i].c);
stu[i].d=stu[i].c*1000+stu[i].b;
}
printf("\n");
for(i=0; iprintf("%s %d\n",stu[i].r,stu[i].d);

}
return 0;
}
题目:现有N名销售人员,每名销售人员的工资由基本工资与绩效组成,其中绩效为当月成功订单金额中抽成10%,现给出每名销售人员的基本情况,输出每名销售人员的姓名与工资情况。
为什么第五个数据中的名字最后输出的时候会多出来PG两个字母?我尝试过对结构体中的数组赋空格的初值,发现最后还是有这两个字母,求告知原因和解决方法。
望采纳,有问题再沟通
memset(stu[i].r, 0, sizeof(stu[i].r));
或者:
stu[i].r = {0};
数组开大一点,你那个字符刚好20个超出了数组 r 的范围,没输出一串奇怪的东西就不错了