无标题无名氏No.61629147 只看PO
2024-03-14(四)20:33:12 ID:WKe4ROY 回应
大佬们救命
肥是一个小白,刚刚学完C语言,正在学习结构体和排序,我刚刚敲了一段代码,和样例几乎一模一样,但是我的会跑出来137,内存超限,但是样例就没有这个问题,为什么,代码串内,拜托了,找的要崩溃了
无标题无名氏No.61629151
2024-03-14(四)20:33:32 ID: WKe4ROY (PO主)
我的
#include <iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
struct student{
int id;
vector<int>chengji;
};
bool panduan(const student &a,const student &b){
int i;
for(i=0;i<7;i++)
{ if(a.chengji[i]!=b.chengji[i]){return a.chengji[i]!=b.chengji[i];}}
return a.id<b.id;
}
int main(){
int n,i,j;
cin>>n;
vector<student>students(n);
for(i=0;i<n;i++)
{
students[i].id=i+1;
students[i].chengji.resize(7);
for(j=0;j<6;j++)
{
int chengji;
cin>>chengji;
students[i].chengji[j]=chengji;}
char chengji;
cin>>chengji;
if(chengji=='A')students[i].chengji4[0,6]=4;
else if(chengji=='B')students[i].chengji6[0,6]=3;
else if(chengji=='C')students[i].chengji6[0,6]=2;
else students[i].chengji4[0,6]=1;
}
sort(students.begin(),students.end(),panduan);
for(i=0;i<n;i++)
cout<<students[i].id<<" ";
return 0;
}
无标题无名氏No.61629168
2024-03-14(四)20:34:33 ID: WKe4ROY (PO主)
样例
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Student {
int id;
vector<int> grades;
};
bool compare(const Student &a, const Student &b) {
for (int i = 0; i < 7; i++) {
if (a.grades[i] != b.grades[i]) {
return a.grades[i] > b.grades[i];
}
}
return a.id < b.id;
}
int main() {
int N;
cin >> N;
vector<Student> students(N);
for (int i = 0; i < N; i++) {
students[i].id = i + 1;
students[i].grades.resize(7);
// 读取除微机课外的六门科目成绩
for (int j = 0; j < 6; j++) {
int grade;
cin >> grade;
students[i].grades[j] = grade;
}
// 读取微机课成绩字符
char grade;
cin >> grade;
if (grade == 'A') students[i].grades1[0,6] = 4;
else if (grade == 'B') students[i].grades6[0,6] = 3;
else if (grade == 'C') students[i].grades6[0,6] = 2;
else students[i].grades2[0,6] = 1;
}
sort(students.begin(), students.end(), compare);
for (int i = 0; i < N; i++) {
cout << students[i].id << " ";
}
return 0;
}
无标题无名氏No.61629187
2024-03-14(四)20:36:08 ID: WKe4ROY (PO主)
下面的部分
if(chengji=='A')students[i].chengji【6】=4;
else if(chengji=='B')students[i].chengji【6】=3;
else if(chengji=='C')students[i].chengji【6】=2;
else students[i].chengji【6】=1;
无标题无名氏No.61629197
2024-03-14(四)20:37:08 ID: WKe4ROY (PO主)
因为英文会r就用中文打了
看AI说是我没静态定义,前思后想自己和样例差在哪了,怎么都想不出来,半个小时了,要炸了
无标题无名氏No.61629366
2024-03-14(四)20:52:01 ID: WKe4ROY (PO主)
>>No.61629308
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct student{
int id;
vector<int>chengji;
};
bool panduan(const student &a,const student &b){
int i;
for(i=0;i<7;i++)
{ if(a.chengji[i]!=b.chengji[i]){return a.chengji[i]!=b.chengji[i];}}
return a.id<b.id;
}
int main(){
int n,i,j;
cin>>n;
vector<student>students(n);
for(i=0;i<n;i++)
{
students[i].id=i+1;
students[i].chengji.resize(7);
for(j=0;j<6;j++)
{
int ch;
cin>>ch;
students[i].chengji[j]=ch;}
char ch;
cin>>ch;
if(ch=='A')students[i].chengji4[0,6]=4;
else if(ch=='B')students[i].chengji0[0,6]=3;
else if(ch=='C')students[i].chengji5[0,6]=2;
else students[i].chengji3[0,6]=1;
}
sort(students.begin(),students.end(),panduan);
for(i=0;i<n;i++)
cout<<students[i].id<<" ";
return 0;
}
改了,没有用(;´Д`)
无标题无名氏No.61629611
2024-03-14(四)21:11:04 ID: WKe4ROY (PO主)
>>No.61629571
问AI他说这两段代码功能一样,就是命名方式不同
想不明白,为什么功能一样我的会跑超时