Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.
Τώρα είναι 09 Φεβ 2010 17:22
All times are UTC + 2 |
Moderators:
Super-Moderators, WebDev Moderators
| Αποστολέας |
Μήνυμα |
diamadiss
Μέλος από: 16 Μαη 2008 Μηνύματα: 28
|
Στις: 16 Μαη 2008 21:02 Θέμα:
Γλώσσα C πρόβλημα με την for Περιγραφή θέματος: πρόβλημα με τoν βρόγχο επανάληψης for |
|
|
Θα ήθελα να φτιάξω ενα πρόγραμμα σε C που να που υπολογίζει το γινόμενο 1*(-2)*3*(-4)* μέχρι τον 10ο όρο και να το εκτυπώνει, με την χρήση της for. Το κάνω ετσι αλλα δεν λειτουργεί.
#include <stdio.h>
main ()
{
int sum,k,i,;
sum=0;
for(i=1;i<10;i-2)
sum=sum*k;
printf("%d\n",sum);
} Last edited by diamadiss on 17 Μαη 2008 13:05, edited 2 times in total |
|
 |

|
dva_dev
Script Master  Μέλος από: 16 Σεπ 2005 Μηνύματα: 256+
|
Στις: 16 Μαη 2008 22:11 Θέμα:
|
|
|
Το A[10] και το k τι κάνουν;
Τι κάνουν το sum και το i; _________________
How |
|
 |
 |
diamadiss
Μέλος από: 16 Μαη 2008 Μηνύματα: 28
|
Στις: 17 Μαη 2008 13:04 Θέμα:
|
|
|
| Sygnomi alla ekana lathos kai egrapsa kati allo pou ithela na kano. Oso gia to sum to xrisimopoio gia na vgalo to athroisma tou ginomenou oste na to ektipose meta me printf. Thanks! |
|
 |
 |
Alice_Cooper
 Μέλος από: 10 Μαη 2007 Scripts: 2 Μηνύματα: 256+Περιοχή: Ioannina
|
Στις: 19 Μαη 2008 18:48 Θέμα:
|
|
|
logika afto sou kanei
| κώδικας: | #include <stdio.h>
main ()
{
int sum,i,n;
sum=1;
for ( n=1, i=-2 ; n<i+20 ; n=n+2, i=i-2 )
{
sum=sum*n*i;
if (n!=1) printf ("*");
printf("%d*(%d)",n,i);
}
printf("=%d\n",sum);
} |
_________________
 |
|
 |
 |
diamadiss
Μέλος από: 16 Μαη 2008 Μηνύματα: 28
|
Στις: 19 Μαη 2008 21:20 Θέμα:
Thanksssss!!!!!!! |
|
|
Nai mou kanei auto se euxaristo para poly gia tin voithia.  |
|
 |
 |
dva_dev
Script Master  Μέλος από: 16 Σεπ 2005 Μηνύματα: 256+
|
Στις: 20 Μαη 2008 15:16 Θέμα:
|
|
|
Alice_Cooper++
Πολύ πρωτότυπη υλοποίηση! Δεν την έχω ξαναπετύχει πουθενά!
Μια πιο τετριμένη λύση, θα μπορούσε να δωθεί ως εξής: Το (2 σε 1) loop θα μπορούσε να σπάσει σε 2 ξεχωριστά loops όπου το ένα θα υπολογίζει το γινόμενο των θετικών, και το άλλο το γινόμενο των αρνητικών, όπως είχε ξεκινήσει να το φτιάχνει και ο diamadiss δηλαδή. [edit](πριν αλλάξει τον κώδικα του)[/edit]
| κώδικας: | int f1(const int N = 10)
{
int i, product = 1;
for ( i=1; i<=N; i += 2 )
product = product * i;
for ( i=-2; i>=-N; i -= 2 )
product = product * i;
return product;
} |
Αν το παιδέψει κάποιος ακόμα περισσότερο, αυτά θα μπορούσαν να μπούν σε 2 ξεχωριστά threads που το καθένα θα υπολογίζει τα γινόμενα των θετικών/αρνητικών, και το main thread, θα κάνει μόνο τον τελικό πολλαπλασιασμό των επιμέρους γινομένων.
ή
για όσους έχουν πιο λιτά γούστα, θα μπορούσε να υλοποιηθεί με ένα loop που απλώς αλλάζει το πρόσημο του κάθε όρου του γινομένου. [edit](περίπου όπως έχει τον κώδικα του ο diamadiss μετά την αλλαγή)[/edit]
| κώδικας: | int f2(const int N = 10)
{
int i;
int sign = -1;
int product = 1;
for ( i=1; i<=N; i++ )
{
sign = - sign; // +1, -1, +1, -1, ...
product = product * (sign * i);
}
return product;
} |
_________________
How |
|
 |
 |
diamadiss
Μέλος από: 16 Μαη 2008 Μηνύματα: 28
|
Στις: 27 Νοε 2008 13:10 Θέμα:
|
|
|
| Ευχαριστώ! |
|
 |
 |
|
Powered by p h p B B © 2001,2005 p h p B B Group
|