菜鸟求助,这段程序在VS2015上运行通过,为什么在GCC下提示RuntimeErr

菜鸟程序员员 2016-09-04 07:19:21
题目很简单,我就不贴了,程序如下:为啥VS2015通过且正确运行,到了GCC就不行?这是在线测试网站的题目,我本地用VS2015,在线的是GCC
//#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char s1[100], s2[100], s3[100] = { 0 };
scanf("%s %s", s1, s2);
double len = strlen(s1);
int i, j = 0;
for (i = 0; i < len; i++)
{
if ((s1[i]>='0'&&s1[i]<='9') || (s1[i]>='a'&&s1[i]<='z' )|| (s1[i]>='A'&&s1[i]<='Z'))
s3[j] = '1';
else
s3[j] = '0';
j++;
}
int num = 0;
for (i = 0; i < len; i++)
if (s2[i] == s3[i])
num++;
printf("%.2f", 100.0*num / len);
printf("%%");
//putchar('%');
//putchar('\n');
//system("pause");
return 0;
}
...全文
455 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
勤奋的小游侠 2016-09-08
  • 打赏
  • 举报
回复
char s1[100], s2[100], s3[100] = { 0 }; 这些东西移到外面 double len = strlen(s1); 这个你一个数组长度需要用double么? for (i = 0; i < len && i<100; i++) 必须要加上这个防止数组越界的东西。要是测试数据是1000个字符,你这东西分分钟被爆掉
qq_36037845 2016-09-06
  • 打赏
  • 举报
回复
可以的,大不了开多点内存,内存不会多多少
fefe82 2016-09-05
  • 打赏
  • 举报
回复
输入是否保证在 99 个字符之内?
qq_36037845 2016-09-05
  • 打赏
  • 举报
回复
int main()是不可以有void
菜鸟程序员员 2016-09-04
  • 打赏
  • 举报
回复
引用 1 楼 paschen 的回复:
不要用在线的。。。.
是做在线测试,又没用过用本地GCC,找工作的苦逼党啊
paschen 2016-09-04
  • 打赏
  • 举报
回复
不要用在线的。。。.

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧