帮忙看一下!
turbo C 里面正常,放到VC里面报错,不执行!fatal error LNK1168: cannot open Debug/练习3.exe for writing,不知道哪里不对,求解疑!
#include "stdafx.h"
#include "stdio.h"
int main()
{
int a[7]={1,3,5,7,9,11};
int num;
int i=0;
int j=0;
scanf("%d",&num);
if(num>a[5])
a[6]=num;
else
for(i=0;i<6;i++)
{
if(a[i]>num)
for(j=5;j>=5-i;j--)
a[j+1]=a[j];
a[j]=num;
break;
}
for(i=0;i<7;i++)
printf("%d",a[i]);
return 0;
}
[解决办法]
看不出什么不正常,不过头文件有点不规范,#include "stdafx.h"这个没用到。
用""包含的头文件一般是自己定义的头文件,自带的一般用<>包含。
[解决办法]
没有什么错,估计是你运行的那个小dos窗口所在的进程没有关,你去资源管理器里把它关掉吧
[解决办法]
代码编译和运行时没有问题的,不过程序的逻辑问题大了,实现了什么功能?
- C/C++ code
#include "stdio.h" //包含头文件int main() //mian函数{ int a[7]={1,3,5,7,9,11};//定义了7个空间的整形数组,并初始化前6个元素int num; //定义numint i=0; //定义i,并赋值为0int j=0; //定义j,并赋值为0scanf("%d",&num); //通过输入,取得num值if(num>a[5]) //判断num是否大于11,a[5]=11a[6]=num; //条件成立时,将数组第六个元素赋值为num的值else //否则,num<=11时for(i=0;i<6;i++) //遍历a数组前6个元素,这里其实只执行了i=0的情况,因为后面的break{if(a[i]>num) //如果当前元素大于num时,a[i]=a[0]=1,即1>m时for(j=5;j>=5-i;j--) //从第6个元素开始到5(5-i=5-0=5)的位置,由于i=0,只将位置为5的元素11的赋给a[6]a[j+1]=a[j]; //执行后移,a[6]=a[5],此时a[6]=11,a[5]=11执行j--后,j=4a[j]=num; //a[4]赋值为num,a[4]=numbreak; //break外层for循环}for(i=0;i<7;i++) //遍历a数组printf("%d",a[i]);//打印a数组return 0; //返回}
[解决办法]
fatal error LNK1168: cannot open Debug/练习3.exe for writing 这个错误应该是练习3.exe这个进程没有关掉,在任务管理器中关掉就可以了。