vc 内存不能为read 高手看看
#include <stdio.h>
int main()
{
int a[3],n1,n2 ;
printf("输入欲排列数:\n") ;
scanf("%d %d %d",&a[0],&a[1],&a[2]) ;
for(n2=2;n2>=0;n2--)
{
for(n1=0;n1<n2;n1++)
{
if(a[n1]<a[n1+1])
{
a[3]=a[n1] ;
a[n1]=a[n1+1] ;
a[n1+1]=a[3] ;
}
}
}
printf("\n%d %d %d\n",a[0],a[1],a[2]) ;
return 0 ;
}
补充:但在 free-c 中 编译 没问题
答案:int a[3],n1,n2 ;
改成int a[4],n1,n2 ;就可以了
你的程序中下标越界了
其他:#include <stdio.h>
int main()
{
int a[3],n1,n2 ,temp;
printf("输入欲排列数:\n") ;
scanf("%d %d %d",&a[0],&a[1],&a[2]) ;
for(n2=2;n2>=0;n2--)
{
for(n1=0;n1<n2;n1++)
{
if(a[n1]<a[n1+1])
{
a[3]=a[n1] ;///////////a[3]???访问越界了吧 ,改为temp= a[n1] ;
a[n1]=a[n1+1] ;
a[n1+1]=a[3] ;//这一句改为 a[n1+1]=temp;
}
}
}
printf("\n%d %d %d\n",a[0],a[1],a[2]) ;
return 0 ;
} 你好!电脑出现:【该内存不能为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
回车!直到屏幕滚动停止为止,重启电脑!
上一个:在VC++中怎么设动态变量?
下一个:VC创建多文档应用程序+容器