这是我的代码:
int min = 0, i, z;
char star[18][100] = {0};
int temp = 0;
char TheStar[2];
TheStar[0] = '*';
TheStar[1] = '\0';
for(i = 0; i < 17; i++){
if(min == 0 && PerHundredThousand > 0)
min = PerHundredThousand[i];
if(PerHundredThousand[i] < min)
min = PerHundredThousand[i];}
for(z = 0; z < 17; z--){
if(PerHundredThousand[z] > 0)
temp = PerHundredThousand[z] / min;
while(temp > 0){
strcat(star[z], TheStar);
temp = temp - 1;}
}
正如你所看到的那样,只要temp高于0,我就会尝试使用strcat来添加'*',但是我遇到了分段错误:
strcat(star[z], TheStar);
感谢任何帮助。提前致谢。
答案 0 :(得分:3)
第二个循环显示错误:
for(z = 0; z < 17; z--){
应该是:
for(z = 0; z < 17; z++){
否则它会比预期循环更多次(以及写入无效的数组位置)。
答案 1 :(得分:1)
在第一个循环中出现错误
if(min == 0 && PerHundredThousand > 0)
应该是
if(min == 0 && PerHundredThousand[i] > 0)