_Dimitris_ έγραψε: ↑Τετ Σεπ 27, 2023 10:26 am
Ευχαριστώ πολύ για την απάντηση!
Όμως, έχω καταλάβει το πώς θα πρέπει να μοιάζει ο κώδικας. Αυτό που δεν έχω καταλάβει, είναι πώς θα μπορούσα να τρέξω τον κώδικα στον υπολογιστή μου. Είδα τις οδηγίες για να βάλω κάποια εντολή στον compiler, όμως δεν υπάρχει κάπου η βιβλιοθήκη, κι έτσι δεν μπορώ να τεστάρω τον κώδικά μου, παρά μόνο κάνοντας απανωτές υποβολές.
Οκ, τώρα κατάλαβα. Προσωπικά είχα κάνει απανωτές υποβολές στο hellenico.
Τώρα δοκίμασα το εξής και μου δούλεψε:
1) Έφτιαξα το δικό μου αρχείο που υλοποιεί τις τρεις αυτές συναρτήσεις, και το ονόμασα hiddenlib.h
2) Έτρεξα την εντολή μεταγλώττισης, με μια μικρή τροποποίηση (υποθέτω ήταν λάθος του hellenico αυτό που προτείνουν)
g++ -std=c++98 -O2 -static hiddenlib.h hidden.cpp -o hidden
Η διαφορά είναι ότι γράφω hiddenlib.h αντί για hiddenlib.cpp
Το αρχείο μου μοιάζει κάπως έτσι:
Κώδικας: Επιλογή όλων
#include <math.h>
#include <stdio.h>
int ans=3, N=5;
int getN() {
}
int ishidden(int x) {
}
int compare(int x, int y) {
}
Αλλάζοντας τις τιμές της ans και της N στην ουσία δημιουργείς νέο αρχείο ελέγχου.
Στον παραπάνω κώδικα άφησα κενές τις συναρτήσεις, ώστε να τις υλοποιήσεις εσύ. Παρακάτω δίνω και ολόκληρο τον κώδικα σε περίπτωση που χρειαστείς παραπάνω βοήθεια:
- Spoiler: show
Κώδικας: Επιλογή όλων
#include <math.h>
#include <stdio.h>
int ans=3, N=5;
int getN() {
return N;
}
int ishidden(int x) {
if(x==ans) {
printf("To brikes\n");
return 1;
}
printf("Apotixia\n");
return 0;
}
int compare(int x, int y) {
if(abs(x-ans) < abs(y-ans)) return 1;
else if (abs(x-ans) > abs(y-ans)) return -1;
return 0;
}