中易网

为什么总是说程序产生一个访问违例???

答案:2  悬赏:60  
解决时间 2021-02-21 16:16
我的程序:
#include
int a[100],n;
int main()
{
FILE* file = fopen("quick.txt", "w");
void quick(int s,int t);
int i;
fprintf(file,"123");
scanf ("%d",&n);
for(i=1;i<=n;i++)
scanf ("%d",&a[i]);
quick(1,n);
for(i=1;i<=n;i++)
fprintf(file,"%d",a[i]);
fclose(file);
return(0);
}
void quick(int s,int t)
{
int i,j,k,ii;
i=s;
j=t;
ii=0;
while (i!=j)
{
if (a[i]>a[j])
{
k=a[i];a[i]=a[j];a[j]=k;
if (ii==0) {i++;ii=1;}else {j--;ii=0;};
}
else if (ii==0) j--; else i++;
}
if (i if (j>s) quick(s,j);
}
运行总是出不了结果,编译能过,但分行运行后就说“程序产生一个访问违例”
怎么回事啊???急死我了%>_<%求高手解答。。。~~~
最佳答案
你的temp数组没有初始化为0,if(!strcmp(temp,keywords[m]))可能出现字符串访问出界。
执行temp[w] = excuse[i][j];时,w的值是不确定的,所以容易出现访问出界。

解决办法:
在 for(i = 0;i < e;i++)
{
int label = 0;
后面初始化temp数组为0,初始化w为0.
全部回答
for(i=1;i<=n;i++){ student student[i]; 如果要定义 数组的话, 需要写到循环 前面, 你这样写 每次循环都 在 定义数组。。 会有很多错的。。 还有,声明数组 [i] i需要是常量 不能是变量。。 解决: 循环前面声明一个足够大的数组,如 student student[1024];
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
鑫源小区北门在什么地方啊,我要过去处理事情
吉格代巴格地址在什么地方,想过去办事
!!股票市场中的技术分析是谁发明的?在什么
哪个先满?
2015年水貂养殖 加入合作社养殖户真能得到国
DNF异界单人怎么进 我70了 一个人咋进不去?
野核桃树树皮有何功效
联想Y450-TSI,重装系统,提示找不到硬盘怎么
求惠特尼.休斯顿的一首慢歌,但不是保镖的主
做整体厨房的话 地柜背板后面可以不贴瓷砖吗
阿依莲南门地址在哪,我要去那里办事
请问常州302路公交车末班车是几点?
电脑高手&英文高手进~
这个月本来应该14号来例假…今天见红了。…上
2016年青岛科技大学专硕几年制
推荐资讯
数学作业写数学书第几页的题????
《诗经·召南·江有汜》是什么意思
六级听力基础分多少
求唯美句子 不限种类 古风的也行 重要的是多
我爱上一个网友,但是他让我感觉若即若离,我
考研二战失败,苦恼于该怎么抉择
小学语文三年级下册苏教版26课为什么出现半个
内蒙古科技大学的机械制造及其自动化专业怎么
LOL中改版前的奶妈,技能E法力灌输是否耗蓝
书之论事,昭如日月。
北湖街街道在什么地方啊,我要过去处理事情
新一喜铁板料理万达广场餐厅地址在哪,我要去
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?