杭电OJ2019题。为什么Runtime Error (ACCESS_VIOLATION)?

#include "stdafx.h"

#include<stdio.h>
#include<stdlib.h>

int main()
{
int i,j,m,n,flag;
int Num[100],a[101];
while(scanf("%d%d",&n,&m)!=EOF&&(m!=0||n!=0))
{
for(i=0;i<=n-1;i++)
scanf("%d",Num[i]);
for(j=0;j<=n-1;j++)
{
if(Num[j]<=m)
a[j]=Num[j];
else
{ a[j]=m; break;}
}
while(j<=n-1)
{
a[j+1]=Num[i];
j++;
}
for(i=0,flag=0;i<=n;i++)
{
if(flag==1) printf(" ");
printf("%d",a[i]);
flag=1;
}
printf("\n");
}
return 0;
}

第1个回答  2013-09-13
//******************************************************************************
// 杭电 2019 数列有序! 代码已AC
//******************************************************************************
//#include "stdafx.h" //该头文件不需要
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,m,n,flag;
int Num[100],a[101];
while (scanf("%d%d",&n,&m)) // n和m同时为0标示输入数据的结束 ,不是EOF
{
if (n==0&&m==0)
break;
memset(Num,'\0',sizeof(Num)); //初始化数组
memset(a,'\0',sizeof(a));
for (i=0;i<=n-1;i++)
scanf("%d",&Num[i]); //遗漏 &
for (j=0;j<=n-1;j++)
{
if (Num[j]<m) //取消等号,会出现相等的情况
a[j]=Num[j];
else
{
a[j]=m;
break;
}
}
while (j<=n-1)
{
a[j+1]=Num[j]; // a[j+1]=Num[j];
j++;
}
for (i=0,flag=0;i<=n;i++)
{
if (flag==1)
printf(" ");
printf("%d",a[i]);
flag=1;
}
printf("\n");
}
return 0;
}
//******************************************************************************
// 祝学习进步,更上一层楼 *(^-^)*
//******************************************************************************本回答被网友采纳
第2个回答  2013-09-13
scanf("%d",&Num[i]);//忘了加&这个了吧
a[j+1]=Num[j];//明显应该是j,因为它才是变动的

本回答被提问者采纳

杭电OJ2019题。为什么Runtime Error (ACCESS_VIOLATION)?
\/\/ \/\/ 杭电 2019 数列有序! 代码已AC \/\/ \/\/#include "stdafx.h" \/\/该头文件不需要 include<stdio.h> include<stdlib.h> int main(){ int i,j,m,n,flag;int Num[100],a[101];while (scanf("%d%d",&n,&m)) \/\/ n和m同时为0标示输入数据的结束 ,不是EOF { ...

为什么提示Runtime Error(ACCESS_VIOLATION)?我用c语言,我自己的CF4...
可能是算法问题,复杂度太大,超过运行时间。在杭电有时间限制的

杭电acm总是Runtime Error (ACCESS_VIOLATION)怎么办?
runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。比如说:除以零 数组越界:int a[3]; a[10000000]=10 指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10 使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *...

...已提交就是Runtime Error (ACCESS_VIOLATION)啊,请问是哪的问题_百...
runtime - error, 表示运行时错误, (access violation 表示访问越界)问题出在你的p指针上, 当执行完组数据时, 你的p指针没有指向申请的空间的起始地址,而是 当前这组测试数据的最后一个字符的地址, 当执行多组数据后,p指针会指向申请空间意外的地方,所以访问越界。我加了一个q指针, 保存申...

...杭电ACM上就显示runtime,error ACCESS_VIOLATION,求大神讲解_百度知 ...
char string_color[1000][15];char *string_num_max1[1000];可能是堆栈大小的问题,你这些变量都是在堆栈里分配的,换成动态分配试试.

杭电acm 一直显示Runtime Error (ACCESS_VIOLATION) http:\/\/acm.hdu...
。。。不知道你用的什么工具。。VC++ 6.0 运行窗口是可以复制粘贴的。。先复制题中的测试数据。点 运行窗口的最左上角—> 编辑—> 粘贴。。OK了。。貌似我以前可以切换输入法的,现在不知道怎么弄不出来了。。。

做杭电acm题目时提交的代码出现ACCESS_VIOLATION错误。
ACCESS_VIOLATION Your program tried to read from or write to a address for which it does not have the appropriate access.您的程序想从一些非法的地址空间读取或向其中写入内容。一般例如指针、数组下标越界都会造成这个错误的。还有个新手常犯的错误会造成这个提示:int a;scanf("%d",a);应该...

杭电1235,结果是Runtime Error(ACCESS_VIOLATION)为什么?
include<stdio.h> int main(){ int n,i,b,s,l=0;int a[1000];while(scanf("%d",&n)&&n!=0){ s=0;l=0;\/\/看这里 for(i=0;i<n;i++){ scanf("%d",&a[i]);l++;} scanf("%d",&b);for(i=0;i<l;i++){ if(a[i]==b)s=s+1;} printf("%d\\n",s);} return...

...为什么总是提示Runtime Error(ACCESS_VIOLATION),我测试结果没问题啊...
Runtime Error一般是数组越界, 可能你数组定义小了

杭电2054为什么Runtime Error ACCESS_VIOLATION
using namespace std;char a[100000],b[100000];\/\/你的代码会有runtime error是因为这里申请的数组长度不够,先把这里改过来,然后你可以看一下后面我给你修改的部分 void f(char *str,int k){ int i;\/\/首先我把你在for循环里的变量声明拿到外面来了,因为我的编译器的作用域判定得比较严格,...

相似回答
大家正在搜