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

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

C++ Μία διόρθωση στον κώδικα μου


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


Μέλος από: 27 Μαη 2008
Μηνύματα: 1

View users profile
ΜήνυμαΣτις: 27 Μαη 2008 04:06    Θέμα: C++ Μία διόρθωση στον κώδικα μου
Περιγραφή θέματος: Έχω γράψει το πρόγραμμα, κάνει compile αλλά έχει λάθος.
Απάντηση με παράθεση  Mark this post and the followings unread

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




#include <iomanip>
#include <iostream>
#include <cmath>

using namespace std;
const int megethos =400;

void sieve (bool[], int);
void print (bool[], int);
int main()
{
bool isPrime[megethos]={0};
sieve(isPrime,megethos);
print(isPrime,megethos);
}
void sieve(bool isPrime[],int n)
{
/////////////////////////////////////////////////////////////////////////////

for(int i=0;i<megethos;i++){ // arxikopoio ola ta isPrime[i] se false
isPrime[i]=false;
}

isPrime[2]=true; // theto ta 2 kai 3 se true
isPrime[3] = true;


for(int i = 5; i<megethos; i+=2) // exoterikos
for(int j=3; j<sqrt(i); j++) // esoteriko
{
if(isPrime[j] % isPrime[i] == 0) // exetazo to ypoloipo
isPrime[i]=true; // mipos isPrime[i]=0;
else
isPrime[i]=false;
}



system("pause");
}

///////////////////////////////////////////////////////////////////////////////
void print(bool a[], int n){
for(int i=1; i<n; i++)
if(a[i])
cout << setw(3)<<i;
else
cout<<setw(3)<<(i%20==0?'\n':' ');

}
dva_dev
Script Master

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

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

1) Στο κόσκινο του ερατοσθένη ξεκινάς θεωρώντας ότι όλοι οι αριθμοί είναι πρώτοι. Εσύ γιατί πας ανάποδα;
2) Ξεκινάς από το Ν=2.
3) Ολα τα πολλαπλάσια του Ν ξεκινώντας από το Ν^2 (Ν^2, Ν^2+Ν, Ν^2 + 2Ν, Ν^2 + λ*Ν) τα μαρκάρεις ότι δεν είναι πρώτοι.
4) Πάς στον επόμενο που δεν έχει μαρκαριστεί ότι δεν είναι πρώτος. Εδώ το Ν=3
5) Επαναλαμβάνεις από το βήμα 3) και κάτω

[edit]Μην ξεχνάς ότι στη C οι πίνακες ξεκινάνε από το μηδέν. Οπότε το 100 θα είναι στη θέση PINAKAS[99] <-- 100-1[/edit]
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 29 Μαρ 2017 15:12 | 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