wei___123 2017-05-28 08:52 采纳率: 75%
浏览 1809
已采纳

代码是否会导致死机,卡屏

#include "stdio.h"
struct employee
{
int member;
char name[20];
char department[30];
int salary;
}emp[100],t;
void income(int n)
{

if(n==0) return;
else
{
scanf("%d",&emp[n-1].member);
scanf("%s",&emp[n-1].name);
scanf("%s",&emp[n-1].department);
scanf("%d",&emp[n-1].salary);
income(n-1);
}
}
void pay(int n)
{
if(n==0) return;
else
{
printf("%-6d",emp[n-1].member);
printf("%-8s",emp[n-1].name);
printf("%-12s",emp[n-1].department);
printf("%-4d\n",emp[n-1].salary);
pay(n-1);
}
}
void sort_sa(int n)
{
int i,j,k;
for(i=0;i {
k=i;
for(j=i+1;j {
if(emp[k].salary>emp[j].salary)
k=j;
if(k!=i)
{
t=emp[i].salary;
emp[i].salary=emp[j].salary;
emp[j].salary=t;
}
}
}
}
int main(int argc, char* argv[])
{ int n;
printf("请输入有多少员工\n");
scanf("%d",&n);
printf("请输入员工信息\n");
printf("工号 名字 部门 工资\n");
income(n);
printf("工号 名字 部门 工资\n");
pay(n);
int i,j,k;
sort_sa(n);
printf("\n");
pay(n);
}
代码在这,其实是有错误的,其中sort_sa函数那转换时,把结构体内类型赋值给了整个结构体变量,但这个代码在visual C++中只是提示错误,在dev C++中,不仅提示错误,每次编译后我拉动旁边的滑条后就突然屏幕停止工作,整个屏幕就死机住了,在vC中没事,我现在已经改过了代码的错误,死机的情况不会出现了,我想知道为什么会这样,是什么导致了屏幕死机,死循环?感觉就算赋值错误也不至于死机吧

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-05-28 15:43
    关注

    单步调试下,看下是不是存在非法的内存访问,先找到出现问题的代码行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料