c++小程序enter时为啥出现内存不能为read
#include"iostream"usingnamespacestd;intmain(){intb,i=0,k,a[5]={1,2,4,5,9};cin>>b;if(b...
#include "iostream"
using namespace std;
int main()
{
int b,i=0,k,a[5]={1,2,4,5,9};
cin>>b;
if (b>a[4])
{a[5]=b;
}else{ if (a[i]<b&&b<a[i+1])
{a[i+1]=b;
k=i;
}
}while (k<=4)
{a[k+2]=a[k+1];
k++;
}
for (i=0;i<=5;i++)
cout<<a[i]<<endl;
return 0;
enter时为啥出现内存不能为read 急
} 展开
using namespace std;
int main()
{
int b,i=0,k,a[5]={1,2,4,5,9};
cin>>b;
if (b>a[4])
{a[5]=b;
}else{ if (a[i]<b&&b<a[i+1])
{a[i+1]=b;
k=i;
}
}while (k<=4)
{a[k+2]=a[k+1];
k++;
}
for (i=0;i<=5;i++)
cout<<a[i]<<endl;
return 0;
enter时为啥出现内存不能为read 急
} 展开
展开全部
你好!电脑出现:【该内存不能为read与written】,原因是比较复杂的,请对症下药!
【答案原创,引用请说明,原作者:力王历史】!偶然出现!点:【确定或取消】,即可!
1。配置错误!【重启,出完电脑品牌后,按F8,安全模式,最后一次正确配置,回车,回车】!
2。系统漏洞!【360安全卫士或金山卫士,或可牛免费杀毒,修复:高危和重要的,其它忽略】!
3。软件冲突!【卸载不常用的软件,保持系统稳定,尤其是同类型的软件,不兼容】!
4。软件版本过旧!【使用:(驱动人生),更新:显卡驱动,声卡驱动!其它软件,覆盖安装】!
5。病毒木马!【杀毒软件,全盘扫描与自定义扫描,完毕后,隔离区,彻底删除】!
6。恶评插件!【可牛免费杀毒,金山卫士,或360安全卫士,清理恶评插件】!
7。可疑启动项!【360系统急救箱,开始急救,文件恢复区,彻底删除文件】!
8。系统文件损坏!【金山急救箱】,扩展扫描,立即扫描,立即处理,重启电脑】!
9。专业工具!【去网上下载一个:read修复工具,修复,试试】!
10。指令修复法!开始菜单,运行 ,输入cmd, 回车,在命令提示符下输入(复制即可) :
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
粘贴,回车,滚动完毕后,再输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
回车!直到屏幕滚动停止为止,重启电脑!
【答案原创,引用请说明,原作者:力王历史】!偶然出现!点:【确定或取消】,即可!
1。配置错误!【重启,出完电脑品牌后,按F8,安全模式,最后一次正确配置,回车,回车】!
2。系统漏洞!【360安全卫士或金山卫士,或可牛免费杀毒,修复:高危和重要的,其它忽略】!
3。软件冲突!【卸载不常用的软件,保持系统稳定,尤其是同类型的软件,不兼容】!
4。软件版本过旧!【使用:(驱动人生),更新:显卡驱动,声卡驱动!其它软件,覆盖安装】!
5。病毒木马!【杀毒软件,全盘扫描与自定义扫描,完毕后,隔离区,彻底删除】!
6。恶评插件!【可牛免费杀毒,金山卫士,或360安全卫士,清理恶评插件】!
7。可疑启动项!【360系统急救箱,开始急救,文件恢复区,彻底删除文件】!
8。系统文件损坏!【金山急救箱】,扩展扫描,立即扫描,立即处理,重启电脑】!
9。专业工具!【去网上下载一个:read修复工具,修复,试试】!
10。指令修复法!开始菜单,运行 ,输入cmd, 回车,在命令提示符下输入(复制即可) :
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
粘贴,回车,滚动完毕后,再输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
回车!直到屏幕滚动停止为止,重启电脑!
追问
你在网上搜的吧 我都看过无数遍了 依然谢谢
追答
我自己写的:【原创答案】,请支持:【原创】!
展开全部
上你上述程序中,并没有给del赋一个初值。程序执行时,如果有找到可删除的数,则会对del赋一个具体值;但当找不到可删除的数,则del的值处于一个未知状态。所以应该在定义del时就赋-1,这样应该可以解决这个情况。
void main()
{
int a[8]=,i,del=-1,index;
for(i=0;i<8;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
printf("请输入要删除的数:");
scanf("%d",&index);
for(i=0;i<8;i++)
{
if(a[i]==index)
{
del=i;
break;
}
}
if(del!=-1)
{
for(i=del;i<7;i++)
{
a[i]=a[i+1];
}
for(i=0;i<7;i++)
{
printf("%d\t",a[i]);
}
}
else
{
printf("找不到这个数,不能删除");
}
}
void main()
{
int a[8]=,i,del=-1,index;
for(i=0;i<8;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
printf("请输入要删除的数:");
scanf("%d",&index);
for(i=0;i<8;i++)
{
if(a[i]==index)
{
del=i;
break;
}
}
if(del!=-1)
{
for(i=del;i<7;i++)
{
a[i]=a[i+1];
}
for(i=0;i<7;i++)
{
printf("%d\t",a[i]);
}
}
else
{
printf("找不到这个数,不能删除");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当输入一个b值 > a[4]的时候k就是一个未初始化的值,可能是一个极小的负数, 那么你那个while就会死循环在那里,一直跳不出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个程序有两个错误.. k没有初始化...循环应该是i<5
#include "iostream"
using namespace std;
int main()
{
int b,i=0,k=0,a[5]={1,2,4,5,9}; // k没有初始化...
cin >> b;
if (b>a[4])
{
a[5]=b;
}
else
{
if (a[i]<b&&b<a[i+1])
{
a[i+1]=b;
k=i;
}
}
while (k<=4)
{
a[k+2]=a[k+1];
k++;
}
for (i=0;i<5;i++) // 循环应该是i<5
cout<<a[i]<<endl;
system("pause");
return 0;
}
#include "iostream"
using namespace std;
int main()
{
int b,i=0,k=0,a[5]={1,2,4,5,9}; // k没有初始化...
cin >> b;
if (b>a[4])
{
a[5]=b;
}
else
{
if (a[i]<b&&b<a[i+1])
{
a[i+1]=b;
k=i;
}
}
while (k<=4)
{
a[k+2]=a[k+1];
k++;
}
for (i=0;i<5;i++) // 循环应该是i<5
cout<<a[i]<<endl;
system("pause");
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序很乱,看不懂.
1.数组a最大只是到a[4],你有个a[5],数组越界了,你的数组是a[5],相当于是a[0],a[1],a[2],a[3],a[4]
2.在后来的判断k<=4时,如果k=4,那么后面的a[k+2]=a[k+1],就相当于a[6]=a[5],数组越界.
有不懂的就发消息给我
1.数组a最大只是到a[4],你有个a[5],数组越界了,你的数组是a[5],相当于是a[0],a[1],a[2],a[3],a[4]
2.在后来的判断k<=4时,如果k=4,那么后面的a[k+2]=a[k+1],就相当于a[6]=a[5],数组越界.
有不懂的就发消息给我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询