首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Linux环境上Runtime Error:Segmentation fault 异常求教

2012-08-07 
Linux环境下Runtime Error:Segmentation fault 错误求教在Windows下的VC++6.0中编写的程序,在Linux下编译

Linux环境下Runtime Error:Segmentation fault 错误求教
在Windows下的VC++6.0中编写的程序,在Linux下编译时出现“Runtime Error:Segmentation fault ”错误,真心求教高手解答~
因为项目要求用Linux编译环境,而自己的电脑里只有Windows系统,只好先试着写了这个程序,
windows下编译运行通过,但是提交后被告知有错误

附上程序源码:

#include <iostream>
#include "string.h"
using namespace std;

#define min(a,b) (a)<=(b)?(a):(b)

struct money{
float faceValue;//面值
int numAll;//该面值钱币的总张数
int numRet;//该面值的找零数
};

int main(void)
{
  money moneyAll[7];
moneyAll[0].faceValue = 50; moneyAll[0].numAll = 10; moneyAll[0].numRet = 0;
moneyAll[1].faceValue = 20; moneyAll[1].numAll = 20; moneyAll[1].numRet = 0;  
moneyAll[2].faceValue = 10; moneyAll[2].numAll = 50; moneyAll[2].numRet = 0;
moneyAll[3].faceValue = 5; moneyAll[3].numAll = 100; moneyAll[3].numRet = 0;
moneyAll[4].faceValue = 1; moneyAll[4].numAll = 100; moneyAll[4].numRet = 0;
moneyAll[5].faceValue = 0.5; moneyAll[5].numAll = 200; moneyAll[5].numRet = 0;
moneyAll[6].faceValue = 0.1; moneyAll[6].numAll = 500; moneyAll[6].numRet = 0;

  float sum = 0;
cin>>sum;

  if (0 == sum)
  {
  return 0;
  }

if (2150 < sum)
{
cout<<"the operate is fail"<<endl;
return 0;
}
//考生需要实现
int i=0;
while(sum >= 0)
{
int numRet = (int)(sum/moneyAll[i].faceValue+0.001);
moneyAll[i].numRet = min(numRet,moneyAll[i].numAll);
sum = sum - moneyAll[i].numRet * moneyAll[i].faceValue;
i++;
}

cout<<"the results are";
cout<<" num_"<<moneyAll[0].faceValue<<"="<<moneyAll[0].numRet;
cout<<" num_"<<moneyAll[1].faceValue<<"="<<moneyAll[1].numRet;
cout<<" num_"<<moneyAll[2].faceValue<<"="<<moneyAll[2].numRet;
cout<<" num_"<<moneyAll[3].faceValue<<"="<<moneyAll[3].numRet;
cout<<" num_"<<moneyAll[4].faceValue<<"="<<moneyAll[4].numRet;
cout<<" num_"<<moneyAll[5].faceValue<<"="<<moneyAll[5].numRet;
cout<<" num_"<<moneyAll[6].faceValue<<"="<<moneyAll[6].numRet;

return 0;

}


[解决办法]
[root@localhost c++]# g++ -o segment segment.cpp 
[root@localhost c++]# 
在linux上编译没什么错误!

热点排行