写了个投票系统 运行后半段遇未知bug
本帖最后由 illvlli 于 2019-7-17 21:57 编辑源代码
第57行有输出
第五十八行无输出,部分如下
---------------------------------------------------
姓名 票数
[ Process completed ( signal 11)- press Enter ]
---------------------------------------------------
爪机编译器
可以执行一个打印函数紧挨着的下一个打印函数却无法执行 直接signal 11就结束了
换了个编译器segmentation fault
有没有dalao啊 已解决
修复代码:
#include<stdio.h>
#include<string.h>
main()
{
struct ABCD
{
int vote;
char name;
} candidate= {{0,"Alice"},{0,"Billy"},{0,"Charles"},{0,"Dick"}};
printf("候选人名单:\nAlice\tBilly\nCharles\tDick\n");
printf("输入你支持的候选人\n");
char a;
int trigger=0;
for(int i=0; i<=3; i++,trigger=0) //修改投票次数
{
gets(a);
for(int b=0; b<=3; b++)
{
if(strcmp(a,candidate.name)==0)
{
candidate.vote++;
trigger++;
}
}
if(trigger==0)
{
printf("此人不在候选名单,请重新输入\n");
i--;
}
}
/*****
*排序*
*****/
printf("统计完成:\n");
char *sort= {&candidate.name,&candidate.name,&candidate.name,&candidate.name};
int *sort1= {&candidate.vote,&candidate.vote,&candidate.vote,&candidate.vote};
for(int b=3; b>=0; b--)
{
for(trigger=0; trigger<=b&&trigger+1<=b;trigger++)
{
if(*sort1<*sort1)
{
int *AA;
char *BB;
AA=sort1;
sort1=sort1;
sort1=AA;
BB=sort;
sort=sort;
sort=BB;
}
}
}
/********
*输出结果*
********/
printf("姓名\t\t票数\n");
int d;
for(d=0; d<=3; d++)
{
printf("%s\t\t%d\n",sort,*sort1);
}
printf("输出完毕");
getchar();
}
原代码出现的bug:
1排序的冒泡算法取到了sort以外,到了sort
2最后的输出函数第一个指针是字符指针,加了"*"取值符
排序里面的trigger变量是懒得再定义一个新变量直接在上面扒了一个下来
希望其他人不要犯这样的错误,卡这个bug卡了3天呐
页:
[1]