回应模式 - No.61629147


No.61629147 - 技术宅


无标题无名氏No.61629147 只看PO

2024-03-14(四)20:33:12 ID:WKe4ROY 回应

大佬们救命
肥是一个小白,刚刚学完C语言,正在学习结构体和排序,我刚刚敲了一段代码,和样例几乎一模一样,但是我的会跑出来137,内存超限,但是样例就没有这个问题,为什么,代码串内,拜托了,找的要崩溃了

Tips无名氏No.9999999

2099-01-01 00:00:01 ID: Tips

( `д´)现充,杀!杀!杀!

无标题无名氏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.61629308

2024-03-14(四)20:46:27 ID: GMnc5eB

要不把char chengji改个变量名试试?跟int那个搞混感觉有点怪

无标题无名氏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.61629493

2024-03-14(四)21:01:54 ID: WKe4ROY (PO主)

努力了一小时都没找到问题的小肥,决定放弃

无标题无名氏No.61629571

2024-03-14(四)21:08:05 ID: EBdQ8w5

问问百度呀

无标题无名氏No.61629611

2024-03-14(四)21:11:04 ID: WKe4ROY (PO主)

>>No.61629571
问AI他说这两段代码功能一样,就是命名方式不同
想不明白,为什么功能一样我的会跑超时