代码看起来没有错,可是为什么不会停止

#include <stdio.h>
#include <string.h>

struct Person
{
    char name[30];
    int count;

}leader[3] = { "li",0,"zhang",0,"ran",0 };

int main()

{
    
    int i, j;
    for (i = 0; i < 10; i++)
    {    
        char leader_name[30];
        printf_s("please enter the name of the elector:\n");
        scanf_s("%s", leader_name,30);
        for (j = 0; j < 3; j++)
        {
            if (strcmp(leader_name, leader[j].name) == 0) leader[j].count++;

        }
    printf_s("\nResult:\n");
    for (i = 0; i < 3; i++)
        {
            printf_s("%s,%d", leader[i].name, leader[i].count);
        }    
    }

    

for (i = 0; i < 3; i++)
{
printf_s("%s,%d", leader[i].name, leader[i].count);
}
这里改变了i的值,导致外循环成为死循环,改成
for (j= 0;j < 3; j++)
{
printf_s("%s,%d", leader[j].name, leader[j].count);
}

你两个for循环里面都用i,第二个会把i改了。所以外层循环永远达到退出条i>=10

这样的问题跟踪一下不就看出来了吗,根本用不着问!