freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Γλώσσα C πρόβλημα με την for


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [7 Μηνύματα]      Bookmarks Tags: γλώσσαπρόβλημα Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
diamadiss


Μέλος από: 16 Μαη 2008
Μηνύματα: 28

View users profile
ΜήνυμαΣτις: 16 Μαη 2008 21:02    Θέμα: Γλώσσα C πρόβλημα με την for
Περιγραφή θέματος: πρόβλημα με τoν βρόγχο επανάληψης for
Απάντηση με παράθεση  Mark this post and the followings unread

Θα ήθελα να φτιάξω ενα πρόγραμμα σε 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+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 16 Μαη 2008 22:11    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Το A[10] και το k τι κάνουν;
Τι κάνουν το sum και το i;
diamadiss


Μέλος από: 16 Μαη 2008
Μηνύματα: 28

View users profile
ΜήνυμαΣτις: 17 Μαη 2008 13:04    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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
View users profile Visit posters website
ΜήνυμαΣτις: 19 Μαη 2008 18:48    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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);
}

_________________

linkedin
diamadiss


Μέλος από: 16 Μαη 2008
Μηνύματα: 28

View users profile
ΜήνυμαΣτις: 19 Μαη 2008 21:20    Θέμα: Thanksssss!!!!!!! Απάντηση με παράθεση  Mark this post and the followings unread

Nai mou kanei auto se euxaristo para poly gia tin voithia.
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 20 Μαη 2008 15:16    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Alice_Cooper++
Πολύ πρωτότυπη υλοποίηση! Δεν την έχω ξαναπετύχει πουθενά!
Respect!

Μια πιο τετριμένη λύση, θα μπορούσε να δωθεί ως εξής: Το (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;
}
diamadiss


Μέλος από: 16 Μαη 2008
Μηνύματα: 28

View users profile
ΜήνυμαΣτις: 27 Νοε 2008 13:10    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ευχαριστώ!
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [7 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 28 Μαρ 2017 15:53 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos