Βοήθεια σε άσκηση για C από βιβλίο

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

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

Re: Βοήθεια σε άσκηση για C από βιβλίο

Δημοσίευσηαπό migf1 » 11 Ιούλ 2011, 12:33

maenolis έγραψε:@migf1: παίρνει πολλές βελτιώσεις ναι...Τα σκεφτόμουν το απόγευμα απλά έγινε πολύ βιαστηκά. Προσπάθησα να δηλώσω long την μεταβλητή που κρατάει το παραγοντικό αλλά και πάλι δεν μου έβγαζε το 10!, Μπορείς να δώσεις μια τροποποίηση που να λειτουργεί σωστά;
Οι πρώτοι αριθμοί είναι κάτι που τρελένονται και στην σχολή μου...δεν ξέρω γιατί!!

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

Re: Βοήθεια σε άσκηση για C από βιβλίο

Δημοσίευσηαπό maenolis » 11 Ιούλ 2011, 12:40

Άκυρο.Σε άλλη υλοποίηση αναφερόμουν, μπερδεύτηκα. Βρες μου το λάθος εδώ
Κώδικας: Επιλογή όλων
/* filename : paragontiko */
#include <stdio.h>
int main()
{
int i,j;long a[10];
for (i=1;i<=10;i++)
{
a[i]=1;
for (j=2;j<=i;j++)
a[i]=a[i]*j;
printf("%d!=%ld\n",i,a[i]);
}
return 0;
}

Το οποίο πάλι παίρνει βελτιώσεις ανάλογες δεν το συζητάμε αυτό.
1 Γνώσεις → Linux: Αρχάριος ┃ Προγραμματισμός: c,c++,sql,html,css ┃ Αγγλικά: Μέτριος
2 Λειτουργικό →Dual boot Ubuntu 12.04 64-bit (en_US.UTF-8) & Windows 7 Professional 64-bit
3 Προδιαγραφές → Intel® Core™ i3-2330M CPU @ 2.20GHz × 4 ‖ RAM 7.7 Gb
4 Κάρτες γραφικών: Intel® HD3000
5 Σκληρός Δίσκος: → OCZ Vertex4 Sata III 128Gb
Άβαταρ μέλους
maenolis
punkTUX
punkTUX
 
Δημοσιεύσεις: 261
Εγγραφή: 12 Μάιος 2011, 09:56
Τοποθεσία: Ν.Κόσμος
Εκτύπωση

Re: Βοήθεια σε άσκηση για C από βιβλίο

Δημοσίευσηαπό migf1 » 11 Ιούλ 2011, 13:01

Εχμ, δεν υπάρχει a[10] !!!!!!!!!!!!!
a[0] έως a[9] υπάρχουν ;)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Βοήθεια σε άσκηση για C από βιβλίο

Δημοσίευσηαπό maenolis » 11 Ιούλ 2011, 13:19

Κώδικας: Επιλογή όλων
/* filename : paragontiko */
#include <stdio.h>
int main()
{
int i,j;long a[10];
for (i=0;i<=9;i++)
{
a[i]=1;
for (j=2;j<=(i+1);j++)
a[i]=a[i]*j;
printf("%d!=%ld\n",(i+1),a[i]);
}
return 0;
}

:clap: :clap: :clap:
1 Γνώσεις → Linux: Αρχάριος ┃ Προγραμματισμός: c,c++,sql,html,css ┃ Αγγλικά: Μέτριος
2 Λειτουργικό →Dual boot Ubuntu 12.04 64-bit (en_US.UTF-8) & Windows 7 Professional 64-bit
3 Προδιαγραφές → Intel® Core™ i3-2330M CPU @ 2.20GHz × 4 ‖ RAM 7.7 Gb
4 Κάρτες γραφικών: Intel® HD3000
5 Σκληρός Δίσκος: → OCZ Vertex4 Sata III 128Gb
Άβαταρ μέλους
maenolis
punkTUX
punkTUX
 
Δημοσιεύσεις: 261
Εγγραφή: 12 Μάιος 2011, 09:56
Τοποθεσία: Ν.Κόσμος
Εκτύπωση

Re: Βοήθεια σε άσκηση για C από βιβλίο

Δημοσίευσηαπό migf1 » 11 Ιούλ 2011, 13:43

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

Re: Βοήθεια σε άσκηση για C από βιβλίο

Δημοσίευσηαπό UnKnown96 » 11 Ιούλ 2011, 15:09

Κώδικας: Επιλογή όλων

#include<stdio.h>
int main() {
int a,b=0;
printf("Number: ");
scanf("%d",&a);
do {
b+=a%10;
a/10;
} while (a!=0);
printf("Digit sum: %d\n",b);
return 0;
}


Αυτό δεν θα έπρεπε να κάνει πρόσθεση τα ψηφία του αριθμού που πλικτρολογεί ο χρήστης;
Άβαταρ μέλους
UnKnown96
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 370
Εγγραφή: 08 Ιουν 2010, 15:23
Τοποθεσία: Ρόδος
Εκτύπωση

Re: Βοήθεια σε άσκηση για C από βιβλίο

Δημοσίευσηαπό migf1 » 11 Ιούλ 2011, 15:21

Θα το κάνει, αν αλλάξεις το:
Κώδικας: Επιλογή όλων

a/10;

σε...
Κώδικας: Επιλογή όλων

a = a/10;

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

Re: Βοήθεια σε άσκηση για C από βιβλίο

Δημοσίευσηαπό UnKnown96 » 11 Ιούλ 2011, 15:30

Ευχαριστώ!!!
Άβαταρ μέλους
UnKnown96
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 370
Εγγραφή: 08 Ιουν 2010, 15:23
Τοποθεσία: Ρόδος
Εκτύπωση

Re: Βοήθεια σε άσκηση για C από βιβλίο

Δημοσίευσηαπό migf1 » 11 Ιούλ 2011, 15:36

Τίποτα :)

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

Προηγούμενη

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