pez237 Δημοσ. 6 Ιανουαρίου 2013 Δημοσ. 6 Ιανουαρίου 2013 Χρόνια πολλά και καλή χρονιά. Θέλω να φτιάξω ένα πρόγραμμα στη C++ το οποίο να μειώνει μια μεταβλητή y κατά -1, ανάλογα με την τιμή x που θα δώσει ο χρήστης. Ο χρήστης πρέπει να δώσει μια τιμή x >=1900. π.χ. 1)Αν ο χρήστης δώσει x=1900 τότε η τιμή του y=-1. (το y θα δηλωθεί ως y=-1 στο πρόγραμμα και στη συνέχεια θα μειώνεται κατά -1 ).Δηλαδή: 2)Αν δώσει x=1999 τότε πάλη το y=-1,δηλ.για x=1900 έως 1999 το y=-1. 3)Αν δώσει από x=2000 έως 2100, y=-2, δηλ. για x=2057 το y να γίνει y=-2 4)Αν δώσει x=2200 ,y=-3,δηλ. αν δώσει x=2200 έως 2299 το y=-3. 5)Αν δώσει x=2300,y=-4,δηλ. αν δώσει x=2300 έως 2399 το y=-4. Κλπ…… Αυτό το πράγμα θέλω να γίνεται για όποια τιμή x δώσει ο χρήστης Έχω στο νου μου για κάποια ή κάποιες επαναλήψεις αλλά δεν μπορώ να τα καταφέρω .Οι γνώσεις μου στη C φτάνουν μέχρι τις συναρτήσεις. Αν γνωρίζει κάποιος κάτι please help!
bird Δημοσ. 6 Ιανουαρίου 2013 Δημοσ. 6 Ιανουαρίου 2013 Νομίζω αυτό σου κάνει αν το βάλεις σε ένα loop y = 18 - (int)x/100 ; //To (int) χρειάζεται μόνο αν δεν έχει δηλωθεί int το x
bird Δημοσ. 6 Ιανουαρίου 2013 Δημοσ. 6 Ιανουαρίου 2013 Κοίτα δεν έχω καταλάβει ακριβώς τι θέλει να κάνει το πρόγραμμα. Αν θέλεις συνεχώς να δίνει τιμές ο χρηστης στο x κι εσύ να αλλάζεις το y τότε θα πρέπει να πάει κάπως έτσι: Ορισμός x; Ορισμός y; while (για όσο θέλεις να τρέχει) { Διάβασε το x; y = (18 - x/100); // Αν θες το y να παίρνει την τιμή που λες ή y += (18-x/100); // Αν θες απο το y να αφερείται κάθε φορά η τιμή που λες } Αυτά αν ξέρεις τα βασικά στη C μπορείς να τα γράψεις...
pez237 Δημοσ. 6 Ιανουαρίου 2013 Μέλος Δημοσ. 6 Ιανουαρίου 2013 Αν δώσω π.χ. χ=3000 τότε το το y = (18 - x/100); εμφανίζει -12, ενώ το y += (18-x/100); εμφανίζει 24, κανονικά θα έπρεπε να εμφανίζει -9.Τι πάει στραβά;
bird Δημοσ. 6 Ιανουαρίου 2013 Δημοσ. 6 Ιανουαρίου 2013 Αν έχω καταλάβει σωστά θέλεις το παρακάτω... 1900-1999 => -1 2000-2099 => -2 2100-2199 => -3 2200-2299 => -4 2300-2399 => -5 2400-2499 => -6 2500-2599 => -7 2600-2699 => -8 2700-2799 => -9 2800-2899 => -10 2900-2999 => -11 3000-3099 => -12 κτλ... Γιατί λοιπόν για χ=3000 το y πρέπει να έιναι -9;;; Όπως τρέχω το πρόγραμμα που έχω φτιάξει (με το y = (18 - x/100); ) δουλεύει όπως το παράδειγμα που δίνω παραπάνω...
pez237 Δημοσ. 6 Ιανουαρίου 2013 Μέλος Δημοσ. 6 Ιανουαρίου 2013 Για να είμαι ακριβής θέλω το παρακάτω: 1900-1999 => -1 2000-2099 => -2 2100-2199 => -2 2200-2299 => -3 2300-2399 => -4 2400-2499 => -5 2500-2599 => -5 2600-2699 => -6 2700-2799 => -7 2800-2899 => -8 2900-2999 => -8 3000-3099 => -9 3100-3199=> -10 3200-3299=> -11 3300-3399=> -11 κτλ...
anelehto Δημοσ. 7 Ιανουαρίου 2013 Δημοσ. 7 Ιανουαρίου 2013 #include <iostream> using namespace std; int main() { int x; cout<<"Dwse timh x: "; cin>>x; while(x<1900) { cout<<"Dwse ksana timh x: "; cin>>x; } int y = (x /100) *-1 + 18; cout<<y<<endl; system("PAUSE"); return 0; }
bird Δημοσ. 7 Ιανουαρίου 2013 Δημοσ. 7 Ιανουαρίου 2013 Άν κατάλαβα καλά τη λογική θέλεις κάτι όπως το παρακάτω... είναι σε C οπότε κάνε το σε C++... #include <stdio.h> main() { int x,y=0; int i; printf("x:"); scanf("%d",&x); i = x-1800; for(y=0; i-((y%3==2)?200:100) >=0 ;y++) i -= ((y%3==2)?200:100); printf("%d\n",-y); return (0); } Βάλε και κανένα έλεγχο για x>=1900 και κανένα loop αν θέλεις να επαναλαμβάνεται αλλά το αποτέλεσμα που θέλεις είναι το -y που τυπώνεται στο τέλος...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα