Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

C++

#include <iostream>

using namespace std;

main(){

int res[4][5]={{-1,-2,-5,-6,-7},{-6,-9,-14,-45,-56},{-75,-56,-96,-75,-45},{-45,-56,-75,-12,-31}};

for(int tes=0;tes<4;tes++){

for(int pes=0;pes<5;pes++){

cout<<res[tes][pes]<<"\t\a";

}

cout<<endl;

}

}

Δες μήπως και σου κάνει βάλε τυχαίους αριθμούς και τύπωσε τους

Δημοσ.

Φίλε παπί δεν την "πιάνω" την πρώτη for...

Στηρίζεται στο γεγονός ότι δεν ξέρουμε την θέση μνήμης του arr ;!

 

το seed στηριζεται στο γεγονος οτι δεν ξερεις τι θα σου δωσει το λειτουργικο

Δημοσ.

>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
srand(time(NULL));

const int size = 8;
int array[8];
int i;

for (i = 0; i < size; i++)
{
	array[i] = rand() % 6 + 1;
	printf("%dn", array[i]);
}
puts("n");	

int counter[6] = { 0, 0, 0, 0, 0, 0 };

for (i = 0; i < size; i++) {
	++counter[array[i] - 1];
printf("%d  ", counter[0]);
printf("%d  ", counter[1]);
printf("%d  ", counter[2]);
printf("%d  ", counter[3]);
printf("%d  ", counter[4]);
printf("%d  ", counter[5]);
puts("n");
}

return 0;
}

απλα κανε αυτο το 1-3 κ 3-6..

 

δεν το χω κανει compile..

 

Αποστολή από το GT-I9000 με τη χρήση Insomnia App

Δημοσ.

@παπι: Do it yourself "random" number generation :o :unsure: :(

Κι εγώ αυτό ήμουν έτοιμος να σχολιάσω. Δεν νομίζω πως χρειάζεται η συγεκριμένη καστομιά... δεν δίνει κανένα πλεονέκτημα έναντι της χρήσης των στάνταρ srand()/rand().

Δημοσ.

Εμενα μου αρεσε μαθαμε και κατι καινουριο....

Τι εννοείς όταν λες καινούριο;

 

Το ότι το r ξεκινάει με την διεύθυνση του arr; Γιατί ουσιαστικά εκεί βασίζεται.

Δημοσ.

Εμενα μου αρεσε μαθαμε και κατι καινουριο....

 

Ακριβώς αυτό είναι το πρόβλημα. Ότι "μαθαίνει κάτι καινούριο" κόσμος που δεν έχει τις γνώσεις για να καταλάβει ότι είναι κάτι που ποτέ δεν πρέπει να κάνεις (και για ποιό λόγο). Δεν είναι ότι στη συγκεκριμένη περίπτωση έγινε κάτι κακό, όμως σε βάζει σε λάθος τριπάκι αντί να σε βάλει στο σωστό: υπάρχει ***μένο εργαλείο ειδικά γι' αυτή τη δουλειά -- χρησιμοποίησέ το!

 

BTW είναι καινούριο ότι μπορείς να κάνεις cast έναν pointer σε int? (που δε μπορείς βασικά σε 64-bit σύστημα αλλά αυτό είναι άλλη κουβέντα).

Δημοσ.

...

BTW είναι καινούριο ότι μπορείς να κάνεις cast έναν pointer σε int? (που δε μπορείς βασικά σε 64-bit σύστημα αλλά αυτό είναι άλλη κουβέντα).

Αν εννοείς συντακτικά, σε C μπορείς (σε C++ δεν θυμάμαι). Το συγκεκριμένο μάλιστα είναι cast από pointer σε int, κι από int σε unsigned. Το πόσο αξιόπιστο (και κυρίως ασφαλές) είναι το αποτέλεσμα είναι άλλο θέμα.

 

Βασικά αν υπήρχε κάποιο ουσιαστικό πλεονέκτημα έναντι του στάνταρ τρόπου δεν θα με χάλαγε (αν κι εγώ θα όριζα δείκτη το r για να του αναθέσω το r = arr, και θα έκανα cast σε int το αποτέλεσμα του modulo για τη χρήση του ως array index).

 

EDIT:

 

r = arr; (και όχι r = &arr)

Δημοσ.

BTW είναι καινούριο ότι μπορείς να κάνεις cast έναν pointer σε int? (που δε μπορείς βασικά σε 64-bit σύστημα αλλά αυτό είναι άλλη κουβέντα).

Εεε και να μη γίνεται, κανείς mask τα 32 λιγότερο σημαντικά bits και είσαι σίγουρος!! Χαχα :-D

 

Πάντως είναι "φονικό" εργαλείο!! Φαντάσου να το παραδώσεις και καλά αυτό σαν εργασίακ και να σου πει ότι είναι λάθος κι εσύ να αρχίσεις να λες τρελά του τύπου "γιατί είναι λάθος;; Μια χαρά δουλεύει!! ...και χωρίς να κάνω και include ολόκληρο library μια μόνο συνάρτηση !!"

...πάει ο άλλος, έπαθε εγκεφαλικό!! :-P

Δημοσ.

Εεε και να μη γίνεται, κανείς mask τα 32 λιγότερο σημαντικά bits και είσαι σίγουρος!! Χαχα :-D

Αυτό το κάνει αυτόματα το casting, τουλάχιστον στη θεωρία, χωρίς να χρειάζεται να ξέρεις καν το endianess.

Δημοσ.

Ακριβώς αυτό είναι το πρόβλημα. Ότι "μαθαίνει κάτι καινούριο" κόσμος που δεν έχει τις γνώσεις για να καταλάβει ότι είναι κάτι που ποτέ δεν πρέπει να κάνεις (και για ποιό λόγο). Δεν είναι ότι στη συγκεκριμένη περίπτωση έγινε κάτι κακό, όμως σε βάζει σε λάθος τριπάκι αντί να σε βάλει στο σωστό: υπάρχει ***μένο εργαλείο ειδικά γι' αυτή τη δουλειά -- χρησιμοποίησέ το!

 

BTW είναι καινούριο ότι μπορείς να κάνεις cast έναν pointer σε int? (που δε μπορείς βασικά σε 64-bit σύστημα αλλά αυτό είναι άλλη κουβέντα).

 

Ειπα να γραψω μια μαλακια να περασει η ωρα happy.gif

 

 

 

r = arr; (και όχι r = &arr)

Το ιδιο ειναι.

Δημοσ.

Αν εννοείς συντακτικά, σε C μπορείς (σε C++ δεν θυμάμαι). Το συγκεκριμένο μάλιστα είναι cast από pointer σε int, κι από int σε unsigned. Το πόσο αξιόπιστο (και κυρίως ασφαλές) είναι το αποτέλεσμα είναι άλλο θέμα.

 

Η ερώτηση απευθυνόταν στον nrkmaiden -- ήθελα να πω "δε νομίζω ότι ο κώδικας κάνει κάτι που δεν ήξερες, απλά έτσι που τα βλέπεις όλα μαζί κωλώνεις λίγο".

 

Φυσικά γίνεται το cast και στη C++: είτε όπως είναι γραμμένο (C-style cast) είτε με reinterpret_cast.

 

Ειπα να γραψω μια μαλακια να περασει η ωρα happy.gif

 

Γι' αυτό και δεν επεκτάθηκα αρχικά... μετά ήρθε ο nrkmaiden και με μπρίζωσε. :rolleyes:

 

Πάντως πιστεύω ότι τέτοιου είδους postings πρέπει να συνοδεύονται με προειδοποίηση "don't do this at home".

Δημοσ.

Πάντως πιστεύω ότι τέτοιου είδους postings πρέπει να συνοδεύονται με προειδοποίηση "don't do this at home".

 

Ε καλα. Το 3ο κομματι της πρωτης for απλα φωναζει απο μονο του

Δημοσ.

...

Το ιδιο ειναι.

Εννοούσα το δικό μου ποστ, όχι το δικό σου. Δηλαδή εννοούσα πως θα το δήλωνα δείκτη το r...

 

>
int *r, arr[6];

οπότε σε αυτή την περίπτωση το: r = &arr θα ήταν λάθος (αυτό θα ήθελε: int **r)..

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...