#include <iostream>
#include <cmath>
using std::cin;
using std::cout;
int main(){
int m, n;
cin >> m >> n;
int** ptr =newint*[m];for(int i =0; i < m;++i)*(ptr + i)=newint[n];
bool flag =false;
int temp =0;
int max =0;
int ii =0;
int jj =0;for(int i =0; i < m;++i){for(int j =0; j < n;++j){
cin >> temp;if(temp ==-2147483648){//错误就在这里*(*(ptr + i)+ j)= max = temp;
ii = i;
jj = j;
flag =true;break;}elseif(abs(temp)>abs(max)){*(*(ptr + i)+ j)= max = temp;
ii = i;
jj = j;}}if(flag)break;}
cout <<++ii <<" "<<++jj <<" "<< max;return0;}
问题抽象:
#include <iostream>
#include <cmath>
using std::cin;
using std::cout;
using std::endl;
int main(){
signed int x =0;if(x ==-2147483648)
cout<<"asfd"<<endl;return0;}
解决办法
换成long没用一样报错
换成"x < -2147483647"
#include <iostream>
#include <cmath>
using std::cin;
using std::cout;
using std::endl;
int main(){
signed int x =0;if(x <-2147483647)
cout<<"asfd"<<endl;return0;}