新手求助,关于输出乱码!!
#include <stdio.h>
#include <string.h>
#include <malloc.h>
struct person
{
char name[20];
int icount;
};
int main()
{
int i, len;
char iname[100];
struct person *pArr;
pArr = (struct person *)malloc(3 * sizeof(struct person));
for(i=0; i < 3; i++)
{
printf("请输入第%d位候选人的姓名:", i+1);
scanf("%s", pArr->name);
}
printf("请输入有多少张选票:");
scanf("%d", &len);
printf("请输出选票:\n");
for(i=0; i < len; i++)
scanf("%s", iname);
for(i=0; i < len; i++)
{
if( strcmp((pArr+0)->name,iname) == 0 )
(pArr+0)->icount += 1;
else if(strcmp((pArr+1)->name,iname) == 0 )
(pArr+1)->icount += 1;
else if(strcmp((pArr+2)->name,iname) == 0 )
(pArr+2)->icount += 1;
else
continue;
}
printf("%s,%d\n", (pArr+0)->name, (pArr+0)->icount);
printf("%s,%d\n", (pArr+1)->name, (pArr+1)->icount);
printf("%s,%d\n", (pArr+2)->name, (pArr+2)->icount);
return 0;
}
输出
请输入第1位候选人的姓名:a
请输入第2位候选人的姓名:b
请输入第3位候选人的姓名:c
请输入有多少张选票:3
请输出选票:
a
b
c
c,-842150448
屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯葺葺?-842150451
屯屯屯屯屯屯屯屯屯屯屯屯葺葺?-842150451
Press any key to continue
求解答
感谢帮助
[解决办法]
VS出现“屯”和"烫“基本都是因为没有初始化内存产生的
pArr = (struct person *)malloc(3 * sizeof(struct person));
memset(pArr,0,3*sizeof(struct persor));
加上这句试试