Προς το περιεχόμενο

c++ program


Προτεινόμενες αναρτήσεις

Δημοσ.

Χρόνια πολλά και καλή χρονιά.

Θέλω να φτιάξω ένα πρόγραμμα στη 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!

Δημοσ.

Νομίζω αυτό σου κάνει αν το βάλεις σε ένα loop

y = 18 - (int)x/100 ; //To (int) χρειάζεται μόνο αν δεν έχει δηλωθεί int το x 
Δημοσ.

Κοίτα δεν έχω καταλάβει ακριβώς τι θέλει να κάνει το πρόγραμμα. Αν θέλεις συνεχώς να δίνει τιμές ο χρηστης στο x κι εσύ να αλλάζεις το y τότε θα πρέπει να πάει κάπως έτσι:

 

Ορισμός x;
Ορισμός y;

while (για όσο θέλεις να τρέχει)
{
Διάβασε το x;

y = (18 - x/100); // Αν θες το y να παίρνει την τιμή που λες ή
y += (18-x/100); // Αν θες απο το y να αφερείται κάθε φορά η τιμή που λες

} 

Αυτά αν ξέρεις τα βασικά στη C μπορείς να τα γράψεις...

Δημοσ.

Αν δώσω π.χ.  χ=3000 τότε το το y = (18 - x/100); εμφανίζει -12, ενώ το y += (18-x/100); εμφανίζει 24, κανονικά θα έπρεπε να εμφανίζει -9.Τι πάει στραβά;

Δημοσ.

Αν έχω καταλάβει σωστά θέλεις το παρακάτω...

 

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); ) δουλεύει όπως το παράδειγμα που δίνω παραπάνω...

Δημοσ.

Για να είμαι ακριβής θέλω το παρακάτω:

 

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

κτλ...

Δημοσ.

#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;
}
Δημοσ.

Άν κατάλαβα καλά τη λογική θέλεις κάτι όπως το παρακάτω... είναι σε 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 που τυπώνεται στο τέλος...

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...