当我的代码正常工作时,为什么在SPOJ中出现运行时(SIGABRT)错误?

时间:2019-06-26 10:27:52

标签: c++

已经快三天了,我不知道错误在哪里。如果您中有人能帮助我解决该问题,我将不胜感激。 问题是要找到比给定测试用例更大的回文数,其中第一行是测试用例的数量,其后是测试用例本身。

我已经尝试调试它,但是仍然无法正常工作。

 #include <string>
 #include <algorithm>
 #include <conio.h>
 #include <vector>

 using namespace std;
 int temp=0;
 string reverse(string x)
 {
     reverse(x.begin(),x.end());
     return x;
 }
 string even(string y)
 {
     string cop=y;
     string cop1=y;
     cop1=cop.substr(0,y.length()/2)+reverse(cop).substr(y.length()/2);
     if(cop1==reverse(cop1)&&cop1>cop)
 {
     return cop1;    
 }
 else
 {
     temp=stoi(cop.substr(0,y.length()/2))+1;
     cop1=to_string(temp)+reverse(to_string(temp)).substr(0);
 }
 return cop1;    
 }
 string odd(string z)
 {
     string cop1=z;
     string cop=z;
     cop1=cop.substr(0,z.length()/2+1)+reverse(cop).substr(z.length()/2+1);
     if(cop1==reverse(cop1)&&cop1>cop)
     {
         return cop1;        
     }
     else
     {
         temp=stoi(cop.substr(0,z.length()/2+1))+1;
         cop1=to_string(temp)+reverse(to_string(temp)).substr(1);
         return cop1;
     }           
 }
 int main()
 {
     int x,len,temp;
     cin>>x;
     vector<string> arr;
     string input;
     for(int i=0;i<x;i++)
     {
         cin>>input;
         len=input.length();
         if(len%2==0)
         {   
             arr.push_back(even(input));
         }
         else
         {
             arr.push_back(odd(input));
         }
     }
     for(int i=0;i<x;i++)
     cout<<arr[i]<<endl;
     getch();
     return 0;
    }

我在这段代码中遇到运行时错误SIGABRT

编辑:

这是我尝试过的新代码..但是我遇到了同样的错误..而在Dev C ++中,它运行良好

# req 


+--------------------------------------------------+
|                        req                       |
+--------------------------------------------------+
| req_id | order_placed | contact_id | seq_records |
+--------+--------------+------------+-------------+
| 1      |         null |       1000 |        null |
+--------+--------------+------------+-------------+
| 2      |         null |       1002 |        null |
+--------+--------------+------------+-------------+
| 3      |         null |       1003 |        null |
+--------+--------------+------------+-------------+



+--------------------------------------------------------------------+
|                               contact                              |
+--------------------------------------------------------------------+
| contact_id | first_name | order_placed | company_name | company_id |
+------------+------------+--------------+--------------+------------+
| 1000       | dirt       |         null |         Asus | 12         |
+------------+------------+--------------+--------------+------------+
| 1002       | dammy      |         null |         Asus | 12         |
+------------+------------+--------------+--------------+------------+
| 1003       | samii      |         null |         Asus | 12         |
+------------+------------+--------------+--------------+------------+
| 1004       | xenon      |         null |       Lenova | 1          |
+------------+------------+--------------+--------------+------------+


CREATE TABLE `req` (
  `req_id` bigint(20) NOT NULL,
   `order_placed` char(1) COLLATE utf8_bin DEFAULT NULL,
   `contact_id` bigint(20) DEFAULT NULL,
   `seq_records` bigint(2) DEFAULT NULL,
  PRIMARY KEY (`req_id`),
  KEY `contact_id` (`contact_id`),
  CONSTRAINT `req_ibfk_10` FOREIGN KEY (`contact_id`) REFERENCES 
  `contact` (`contact_id`)
) 
/*!40101 SET character_set_client = @saved_cs_client */;

# contact

CREATE TABLE contact (
  contact_id bigint(20) NOT NULL,
  `first_name` varchar(100) COLLATE utf8_bin NOT NULL,
  `company_name` varchar(100) COLLATE utf8_bin DEFAULT NULL,
  `company_id` varchar(100) COLLATE utf8_bin DEFAULT NULL,
  `order_placed` char(1) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`contact_id`),
  KEY `index_name` (`contact_id`),
) 

1 个答案:

答案 0 :(得分:0)

由于无法/成功进行转换,程序在std::invalid_argument中出现stoi异常。

stol Reference

请检查您对stoi的输入,希望可以解决此问题。

  

如果它不起作用。请与SIGABRT共享您的控制台输入/输出。如果可能,GDB日志也可以提供帮助。

希望对您有帮助!