三心二意的意思和出处:为什么这个程序不能运行?

来源:百度文库 编辑:高考问答 时间:2024/04/28 05:30:50
#include<stdio.h>
#include<conio.h>
#define MAX 50
int cnt=5;
void read(int dt[])
{
int i;
printf("Please enter data:\n");
for(i=0;i<cnt;i++)
scanf("%d",&dt[i]);
}
void insert(int dt[],int ins,int pos)
{
int i;
for(i=cnt-1;i!=pos;i--)
{
dt[i+1]=dt[i];
}
dt[pos]=ins;
cnt++;
}
void list(int dt[])
{
int i;
for(i=0;i<cnt;i++)
printf("%5d",dt[i]);
}
main()
{
int data[MAX],ins,pos;
read(data);
printf("Org data:\n");
list(data);
printf("\nPlease input insert data and position:\n");
scanf("%d%d",&ins,&pos);
insert(data,ins,pos);
printf("Data after inserted:\n");
list(data);
getch();
}
这个程序一运行就出现16位子系统什么的东西!烦死了!这是怎么回事啊!
大哥们主要问题不在这,这个程序是对的,但我一运行就在DOS窗口弹出的同时弹出一个什么16位 S-DOS子系统
E:\Win-TC\profects\delete.exe
NTVDM CPU遇到无效的指令。
CS:0000 IP:0077 OP:f0 37 05 12 02选择”关闭“终止应用程序
的东西啊!

这是16位模式程序运行出错造成的提示
以前帮别人弄过。。
最后原因竟然是上网助手那些流氓软件的问题
建议你去安全下用windows流氓软件清理等工具将流氓软件都弄掉
再试试
还有一种方法你也可以试一下,通过COPY其他正常运行的WINDOWSXP的机器系统目录下(例如:c:\WINDOWS\SYSTEM32\CMD.EXE.")的CMD.EXE.到你这台不能正常运行16位MS-DOS子系统

主函数中的scanf("%d%d",&ins,&pos);
加一个空格写成scanf("%d %d",&ins,&pos);
输入数据时也在两个数间加一个空格

写错了