Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Τα πάντα για την C

Δημοσίευσηαπό clepto » 11 Ιουν 2011, 17:06

Ανοίγω αυτό το θέμα για όποιον έχει κάποια απορία/ερώτηση πάνω στην γλώσσα προγραμματισμού C
Εδώ θα γράφουμε ότι αφορά την C.
Προβλήματα, ερωτήσεις, απαντήσεις, δικά μας scripts και ότι σχετικό εδώ!

~Παρακαλώ να γίνετε οπωσδήποτε χρήση του code tag όπου υπάρχει κώδικας~



--------

αρχίζω εγώ πρώτα :p
έχω γράψει ένα script για να βλέπω πόσο χρονών είμαι...
εδώ είναι το script:

Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <math.h>
#include <string.h>

int x;
int y;
int z;
int x2;
int y2;
int z2;
int day;
int month;
int year;


int main(void) {
   

printf("Πόσο έχει ο μήνας: ");
scanf("%d", &x);

   printf("Ποιος μήνας είναι: ");
scanf("%d", &y);

   printf("Ποια χρονιά είναι: ");
scanf("%d", &z);



   printf("Ποσο ειχε την μερα που γεννηθηκες; ");
scanf("%d", &x2);

   printf("Ποιον μηνα γεννηθηκες: ");
scanf("%d", &y2);

   printf("Ποια χρονιά γεννηθηκες: ");
scanf("%d", &z2);



day = (x-x2);
month = (y-y2);
year = (z-z2);

printf("Είσαι &year χρονών, &month μηνών και &day ημερών /n");
}
το πρόβλημα είναι ότι όταν δίνω όλες τις ημερομηνίες που απαιντούνται μου βγάζει
Είσαι &year χρονών, &month μηνών και &day ημερών

δηλαδή δεν ξέρω πως να το κάνω να μου δείξει τις μεταβλητές...
εκεί που κάνει τις πράξεις δεν ξέρω αν το έχω γράψει σωστά οπότε αν δείτε λάθος πείτε μου..
Τελευταία επεξεργασία από clepto και 12 Φεβ 2012, 17:02, έχει επεξεργασθεί 4 φορά/ες συνολικά
Αιτία: Μετατροπή σε sticky και διόρθωση αρχικού μηνύματος.
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό konnn » 11 Ιουν 2011, 17:14

Ο χαρακτήρας "ampersand", δλδ το "&" χρησιμοποιείται για ανάγνωση μεταβλητών(και όχι μόνο).Στην "printf" βάζουμε το "%".Δες εδώ http://www.cplusplus.com/reference/clib ... io/printf/ για ποιο αναλυτικά, δλδ δηλώνεις τον τύπο της μεταβλητής και έπειτα ποιά είναι . + πως πρέπει να προσθέσεις στο τέλος "return 0;" αφού δεν επιστρέφει κάτι η 'main".
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Qdata » 11 Ιουν 2011, 17:18

Έτσι είναι το σωστό αλλά δεν ξέρω πως ακριβώς να κάνω τους αριθμούς δεκαδικούς!Δοκίμασε να το μεταγλωττίσεις και δες το πρόβλημα.Αν μπορείς άλλαξε το %d

Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <math.h>
#include <string.h>

int x, y, z, x2, y2, z2, day, month, year;


int main(void) {
   

printf("Πόσο έχει ο μήνας: ");
scanf("%d", &x);

   printf("Ποιος μήνας είναι: ");
scanf("%d", &y);

   printf("Ποια χρονιά είναι: ");
scanf("%d", &z);



   printf("Ποσο ειχε την μερα που γεννηθηκες; ");
scanf("%d", &x2);

   printf("Ποιον μηνα γεννηθηκες: ");
scanf("%d", &y2);

   printf("Ποια χρονιά γεννηθηκες: ");
scanf("%d", &z2);



day = (x-x2);
month = (y-y2);
year = (z-z2);

printf("Είσαι %d χρονών, %d μηνών και %d ημερών \n", &year, &month, &day);
}


Edit: Πάλι με πρόλαβαν! :mrgreen:
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό clepto » 11 Ιουν 2011, 17:24

ευχαριστώ παιδιά!
Δήμο δεν πειράζει, επόμενη φορά :P

εδιτ: Δήμο
Είσαι 134519200 χρονών, 134519208 μηνών και 134519192 ημερών
χαχαχαχα
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Qdata » 11 Ιουν 2011, 17:36

clepto έγραψε:ευχαριστώ παιδιά!
Δήμο δεν πειράζει, επόμενη φορά :P

εδιτ: Δήμο
Είσαι 134519200 χρονών, 134519208 μηνών και 134519192 ημερών
χαχαχαχα


Off topic:
:D Τόσα πολλά;Μάλλον λείπει ένα κόμμα κάπου! :mrgreen:
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό konnn » 11 Ιουν 2011, 17:39

Qdata έγραψε: αλλά δεν ξέρω πως ακριβώς να κάνω τους αριθμούς δεκαδικούς!
Δεν νομίζω πως χρειάζεται κάπου εδώ.Αν ναι, αλλάζετε τις μεταβλητές από ακεραίους σε κινητής υποδιαστολής(float).
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 11 Ιουν 2011, 19:10

Καλησπέρα,

το πρόβλημα είναι τα & στην printf(), δεν χρειάζονται (χρειάζονται μόνο στην scanf() ). Σου βγάζει τεράστια νούμερα γιατί με το & που έχει μπει μπροστά από τις μεταβλητές στην printf() αντί να τυπώνει τις τιμές των μεταβλητών τυπώνει τις διευθύνσεις τους στη μνήμη.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Qdata » 11 Ιουν 2011, 19:15

migf1 έγραψε:Καλησπέρα,

το πρόβλημα είναι τα & στην printf(), δεν χρειάζονται (χρειάζονται μόνο στην scanf() ). Σου βγάζει τεράστια νούμερα γιατί με το & που έχει μπει μπροστά από τις μεταβλητές στην printf() αντί να τυπώνει τις τιμές των μεταβλητών τυπώνει τις διευθύνσεις τους στη μνήμη.


Σωστά! @clepto το πρόγραμμα είναι σωστό έτσι:
Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <math.h>
#include <string.h>

int x, y, z, x2, y2, z2, day, month, year;


int main(void) {
   

printf("Πόσο έχει ο μήνας: ");
scanf("%d", &x);

   printf("Ποιος μήνας είναι: ");
scanf("%d", &y);

   printf("Ποια χρονιά είναι: ");
scanf("%d", &z);



   printf("Ποσο ειχε την μερα που γεννηθηκες; ");
scanf("%d", &x2);

   printf("Ποιον μηνα γεννηθηκες: ");
scanf("%d", &y2);

   printf("Ποια χρονιά γεννηθηκες: ");
scanf("%d", &z2);



day = (x-x2);
month = (y-y2);
year = (z-z2);

printf("Είσαι %d χρονών, %d μηνών και %d ημερών \n", year, month, day);
}
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό clepto » 11 Ιουν 2011, 19:24

σωστά!τώρα δουλεύει μια χαρά..
@migf1 για να το τρέξω σε windows τι πρέπει να κάνω;
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 11 Ιουν 2011, 19:27

clepto έγραψε:σωστά!τώρα δουλεύει μια χαρά..
@migf1 για να το τρέξω σε windows τι πρέπει να κάνω;

Έχεις C compiler στα Windows?
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Επόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι