C语言问题,下面程序可以组建但是运行时就出错了,为什么
答案:4 悬赏:10
解决时间 2021-02-15 00:54
- 提问者网友:余味
- 2021-02-14 06:24
C语言问题,下面程序可以组建但是运行时就出错了,为什么
最佳答案
- 二级知识专家网友:冷态度
- 2021-02-14 07:14
有几处错误,主要问题是输入记录到字符串的处理不对,以及会造成死循环。
都在代码中用注释标注了,例如: 修改1 、 修改2
下面见代码及注释说明的修改内容:
#include
#include
int main()
{
char a[240];
int i=0,j=0,NUM1,NUM2,n=0,m=0;
#if 0
for(;i<240;i++){
getchar(a[i]);
if('\n' == a[i])
break;
else
continue;
}
NUM1=i;
#else
memset( a, 0x00, sizeof(a));
scanf("%s",&a[0]);
NUM1 = strlen(a);
#endif
i=0;
scanf("%d",&n);
while(m
if(a[i]>=a[j]){
j++;
if(j==NUM1){
a[i]=0x10;
i=0;
j=0;
m++;
}
else
;
}
else
i=j;
}
i=0,j=0,m=0;
NUM2=NUM1-n;
#if 0
while(m
if(a[i]<=a[j]){
if(0x10 == a[i])
i++;
else
j++;
if(j==NUM1){
putchar(a[i]);
i=0;
j=0;
m++;
}
else
;
}
else
i=j;
}
#else
for (i=0; i
if(0x10 == a[i]){
}
else{
putchar(a[i]);
}
}
#endif
printf("\n");
return 0;
}
都在代码中用注释标注了,例如: 修改1 、 修改2
下面见代码及注释说明的修改内容:
#include
#include
int main()
{
char a[240];
int i=0,j=0,NUM1,NUM2,n=0,m=0;
#if 0
for(;i<240;i++){
getchar(a[i]);
if('\n' == a[i])
break;
else
continue;
}
NUM1=i;
#else
memset( a, 0x00, sizeof(a));
scanf("%s",&a[0]);
NUM1 = strlen(a);
#endif
i=0;
scanf("%d",&n);
while(m
j++;
if(j==NUM1){
a[i]=0x10;
i=0;
j=0;
m++;
}
else
;
}
else
i=j;
}
i=0,j=0,m=0;
NUM2=NUM1-n;
#if 0
while(m
if(0x10 == a[i])
i++;
else
j++;
if(j==NUM1){
putchar(a[i]);
i=0;
j=0;
m++;
}
else
;
}
else
i=j;
}
#else
for (i=0; i
}
else{
putchar(a[i]);
}
}
#endif
printf("\n");
return 0;
}
全部回答
- 1楼网友:温柔刺客
- 2021-02-14 10:21
很正常,内存问题!
不该用的内存你用了。
你用的内存,不是合法的!
就这两种错误!
- 2楼网友:有钳、任性
- 2021-02-14 09:55
#include 写错了
应该是 #include
你是发的时候写错了还是原来就写错了。
如果不是这个原因,就是编译器没安装好了。
建议写小程序就换成devcpp这个工具吧,这个运行快,而且没有乱七八糟的安装问题。
- 3楼网友:不服输就别哭
- 2021-02-14 08:29
这种问题我也遇到过,你把那个软件重新装一下吧,最好是用哪个C++完美绿色版,插件比较少,不占内存,你装在C盘了吧,你的C盘应该是内存不够了,你卸载之后装在其他盘吧
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |