为什么C语言中gets会闪退,[求助]我的gets()函数怎么了?

#include

#include

#define MAX 100

void Manchester_Base()

{

char s[MAX];

char result1[MAX/2];

int i,j,len;

fflush(stdin);

printf("请输入偶数个数字信号'1'代表高电压,'0'代表低电压\n");

gets(s);

len=strlen(s);

while(len%2)

{

printf("你输入的信号不是偶数,请重新输入:\n");

gets(s);

len=strlen(s);

}

for(i=0;i

{

if(s[i]==s[i+1])

{

printf("你输入的码元不是曼彻斯特编码,请重新输入:\n");

gets(s);

i=-2;

len=strlen(s);

}

i=i+2;

}

for(i=0;i

{

if(s[i]!='1'&&s[i]!='0')

{

printf("你输入的码元不是曼彻斯特编码,请重新输入:\n");

gets(s);

i=-1;

len=strlen(s);

}

}

i=0;

j=0;

while(i

{

if(s[i]>s[i+1])

result1[j]='1';

else

result1[j]='0';

i=i+2;

j++;

}

result1[j]='\0';

printf("你输入的码元经过曼彻斯特译码后得:\n");

puts(result1);

}

void Base_Manchester()

{

char s[MAX];

char result[MAX*2];

int i,j,len;

fflush(stdin);

printf("请输入数字信号'1'代表高电压,'0'代表低电压\n");

gets(s);

j=0;

len=strlen(s);

for(i=0;i

{

if(s[i]!='1'&&s[i]!='0')

{

printf("你输入的码元不是曼彻斯特编码,请重新输入:\n");

gets(s);

i=0;

len=strlen(s);

}

}

for(i=0;i

{

if(s[i]=='0')

{

result[j]='0';

result[j+1]='1';

}

if(s[i]=='1')

{

result[j]='1';

result[j+1]='0';

}

i++;

j=j+2;

}

result[j]='\0';

printf("你输入的基码经过曼彻斯特编码后的:\n");

puts(result);

}

void main()

{

int flags;

int choice;flags=1;

while(flags)

{

printf("选择1进行曼彻斯特译码:\n");

printf("选择2进行曼彻斯特编码:\n");

printf("选择3退出该程序:\n");

scanf("%d",&choice);

/*if(choice==1)

Manchester_Base();

if(choice==2)

Base_Manchester();

if(choice==3)

flags=0;*/

switch(choice)

{

case 1: Manchester_Base();break;

case 2: Base_Manchester();break;

case 3: flags=0;break;

}

}

}

是这个问题不?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值