为什么这段代码会出现负值呢?
#include <iostream>#include <algorithm>
#include <string>
using namespace std;
struct num{
int num;
string str;
};
bool cmp(num a,num b)
{
return a.num>b.num;
}
int main()
{
int n;
cin>>n;
num num1;
for(int i=0;i<n;i++)
cin>>num1.str;
for(int i=0;i<n;i++)
{
for(int j=3;j<=13;j++){
num1.num=num1.num*10+num1.str-'0';
cout<<"第"<<j+1<<"个数字"<<":"<<num1.num<<" "<<num1.str<<endl;
}
}
sort(num1,num1+n,cmp);
for(int i=0;i<n;i++)
cout<<num1.str<<endl;
}
这是测试用例:
5
466272307503271156
215856472207097978
234804580401078365
404475727700034980
710351408803093165
样例输出
404475727700034980
234804580401078365
215856472207097978
710351408803093165
466272307503271156 1>------ 已启动生成: 项目: C++, 配置: Debug Win32 ------
1>main.cpp
1>c:\visualstudioprojects\c++\c++\main.cpp(9): error C2380: “num”前的类型(构造函数有返回类型或是当前类型名称的非法重定义?)
1>c:\visualstudioprojects\c++\c++\main.cpp(15): error C2274: “函数样式转换”: 位于“.”运算符右边时非法
1>c:\visualstudioprojects\c++\c++\main.cpp(31): error C2274: “函数样式转换”: 位于“.”运算符右边时非法
1>c:\visualstudioprojects\c++\c++\main.cpp(32): error C2274: “函数样式转换”: 位于“.”运算符右边时非法
1>已完成生成项目“C++.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
页:
[1]