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

Άσκηση στην c σε αρχαριο


foluke

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

Δημοσ.

Να γίνει ανάπτυξη προγράμματος σε γλώσσα C με το οποίο θα γίνεται εισαγωγή ενός πίνακα με στοιχεία ακεραίου τύπου. Το πρόγραμμα θα περιλαμβάνει τις συναρτήσεις:

 

1) isodos Εισάγονται τα στοιχεία ενός πίνακα

 

2) ipologise Βρίσκει και επιστρέφει το συνολικό πλήθος των στοιχείων του πίνακα που είναι μεγαλύτερα του 50.

 

3) dixe Θα εμφανίζονται στην οθόνη τα στοιχεία ενός πίνακα

 

4) sum Θα υπολογίζει το άθροισμα όλων των στοιχείων του πίνακα

 

Στο main:

 

* Θα γίνεται κλήση της συνάρτησης isodos μια φορά για να εισάγονται τα στοιχεία του πίνακα

 

* Θα γίνεται κλήση της συνάρτησης ipologise μία φορά για να υπολογίζεται και επιστρέφεται το συνολικό πλήθος των στοιχείων του πίνακα που είναι μεγαλύτερα του 50.

 

* Θα γίνεται κλήση της συνάρτησης dixe μία φορά για να εμφανίζονται στην οθόνη τα στοιχεία του πίνακα.

 

* Θα γίνεται κλήση της συνάρτησης sum και θα εμφανίζεται στο main το άθροισμα των στοιχείων του πίνακα.

 

Έχω αυτήν άσκηση και δεν μπορώ να βγάλω σωστά έχω δεν το έχω με τον προγραμματισμο!!!!

Δημοσ.

Και θέλεις να στη λύσουμε εμείς;

 

Φτιάξε ότι μπορείς να φτιάξεις, παρέθεσε τον κώδικα που έχεις φτιάξει, πες μας σε ποιο σημείο κολλάς, κι αν ξέρουμε θα σε βοηθήσουμε ;)

Δημοσ.

Για να έχεις αυτή την άσκηση, κάτι σχετικό με Η/Υ κάνεις. Για να κάνεις κάτι σχετικό με Η/Υ και να μην μπορείς να την λύσεις... τότε κάτι κάνεις λάθος στις επιλογές σου.

Δημοσ.

#include <stdio.h>

#include <stdlib.h>

void eisodos(int c){

int ipologise(int a)

{

a=0;

if (a>50);

printf("a>50\n");

a++;

}

void dixe (int b[])

{

int i;

for(i=0;i<100;i++);

{

printf("%d\n",b);

}

}

int sum (int a[])

{

int i,sum;

sum=0;

for(i=0;i<100;i++);

 

 

sum=sum+a;

 

return sum;

}

main()

{

int a[20],i,b,*c;

printf("dwste ta stixia tou pinaka\n");

 

eisodos©;

printf("oi arithmoi pou einai panw tou 50 einai %d\n",a);

 

ipologise (a>50);

printf("ta stixia tou pinaka einai\n");

 

dixe(a);

printf("toathroisma twn stixiwn tou pinaka\n");

 

system ("pause");

return (B);

}

το ξέρω είμαι τραγικός αλλα πείτε μου τι πρεπει να αλλάξω

Δημοσ.
>
#include <stdio.h>
#include <stdlib.h>

// eisodos Εισάγονται τα στοιχεία ενός πίνακα
void eisodos( int a[] )		// <--- σου άλλαξα το όρισμα της συνάρτησης ώστε είναι
			//	πίνακας σε int, και όχι σκέτος int που το είχες
{
// βάλε ένα βρόγχο που θα διαβάζει από τον χρήστη τα
// στοιχεία του πίνακα a[] διαδοχικά από το 0 μέχρι και το 19
// με χρήση της συνάρτησης: scanf()
}

// ipologise Βρίσκει και επιστρέφει το συνολικό πλήθος των στοιχείων του πίνακα
// που είναι μεγαλύτερα του 50
int ipologise( int a[] )	// <---- δες παραπάνω
{
int count50 = 0;

// βάλε έναν βρόγχο που θα διατρέχει όλα τα στοιχεία του πίνακα a[]
// διαδοχικά από το 0 μέχρι και το 19 και για το καθένα από αυτά θα
// ελέγχει αν έχει τιμή μεγαλύτερη από 50... αν έχει τότε αύξανε
// κατά 1 μια μεταβλητή μετρήματος (π.χ. count50) την οποία θα την
// αρχικοποιείς έξω από τον βρόγχο και την τελική της τιμή θα την
// επιστρέφεις ως τιμή επιστροφής της συνάρτησης

return count50;

/** ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟ (αυθεντικός κώδικας)
a=0;
if ( a > 50 );
printf("a>50\n");
a++;
***/
}

// dixe Θα εμφανίζονται στην οθόνη τα στοιχεία ενός πίνακα
void dixe ( int b[] )
{
// αυτή τη συνάρτηση την έχεις ΣΧΕΔΟΝ σωστή !
// το 1ο πρόβλημα είναι το ; στο τέλος του for
// και το 2ο πως ενώ στην main ορίζεις τον πίνακα να έχει 20 στοιχεία
// εδώ τον διατρέχεις μέχρι το 100ο στοιχείο!!!!!!!

int i;
for ( i=0; i<100; i++);		// <--- σβήσε το ;
{
	printf("%d\n", b[i]);
}

return;				// <--- απαραίτητο σε ολες τις void συναρτήσεις
}

// sum Θα υπολογίζει το άθροισμα όλων των στοιχείων του πίνακα
int sum ( int a[] )
{
// αυτή τη συνάρτηση την έχεις ΣΧΕΔΟΝ σωστή !
// το 1ο πρόβλημα είναι το ; στο τέλος του for
// και το 2ο πως ενώ στην main ορίζεις τον πίνακα να έχει 20 στοιχεία
// εδώ τον διατρέχεις μέχρι το 100ο στοιχείο!!!!!!!

int i,sum;

sum = 0;
for(i=0; i < 100; i++);		// <--- σβήσε το ;
	sum = sum + a[i];

return sum;
}

main()
{
// τα i, b και *c είναι αχρείαστα εδώ, δεν τα χρησιμοποιεις κάπου
// τον πίνακα a[] τον ορίζεις σωστά με χωρητικότητα 20 στοιχείων,
// αλλα μέσα στις συναρτήσεις τον διατρέχεις σαν να έχει 100 στοιχεία
// (που φυσικά δεν έχει, αφού τον έχεις ορίσει να έχει 20)
int a[20], i,b, *c;

printf("dwste ta stixia tou pinaka\n");
// ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟΣ αυθεντικός κώδικας: eisodos();
eisodos( a );

// στο printf δεν θες να τυπώσεις τον πίνακα a (οι πίνακες ΔΕΝ τυπώνονται έτσι)
// θες να τυπώσεις το νούμερο που σου επιστρέφει η συνάρτηση: ipologise()
/** ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟΣ κώδικας: printf("oi arithmoi pou einai panw tou 50 einai %d\n",a);
                               ipologise (a > 50);
**/

// το παρακάτω το έχεις σωστό !
printf("ta stixia tou pinaka einai\n");
dixe( a );

printf("to athroisma twn stixiwn tou pinaka\n");
// λείπει η εκτύπωση του: sum( a );

system ("pause");
return 0;
}

Δημοσ.

Τίποτα, να 'σαι καλά :)

 

ΥΓ. Ξανα δες τα μια, γιατί έκανα κάτι μικρο-αλλαγούλες :)

 

Ειδικά για τον μετρητή count50 που σου είχα βάλει λάθος σχόλιο πριν !!!!

Δημοσ.

#include <stdio.h>

#include <stdlib.h>

void eisodos( int a[] )

{

scanf("%d",*a);

 

 

}

int ipologise( int a[],int i )

{

int count50 = 0;

for(i=0;i<20;i++)

if (a>50)

count50++;

printf("%d\n",a);

return count50;

 

}

void dixe ( int b[] )

{

int i;

for ( i=0; i<20; i++)

{

printf("%d\n", b);

}

 

return;

}

int sum ( int a[] )

{

 

int i,sum;

 

sum = 0;

for(i=0; i < 20; i++)

sum = sum + a;

 

return sum;

}

main()

{

int a[20];int i;

printf("dwste ta stixia tou pinaka\n");

eisodos( a );

for(i=0;i<50;i++)

printf("%d",a[20]);

int ipologise(int a[]);

printf("ta stixia tou pinaka einai\n");

dixe( a );

printf("to athroisma twn stixiwn tou pinaka\n");

sum( a );

system ("pause");

return 0;

}

μήπως ξέρεις το λάθος;

Δημοσ.

Από ότι βλέπω πρόχειρα, στην scanf() οι μεταβλητές διαβάζονται με & μπροστά και όχι με *, στο eisodos() δεν έχει βάλει βρόγχο (loop) για να διαβάσεις τα 20 στοιχεία του πίνακα, ο βρόγχος του for στην ipologise() δεν περικλείει σε { } τις εσωτερικές εντολές του βρόγχου και τέλος στην main() αφενός προσπαθείς με ένα printf() να τυπώσεις ολόκληρο τον πίνακα (πράμα τελείως άκυρο) και υπολογίζεις το sum αλλά δεν το τυπώνεις.

 

ΥΓ. Για να εμφανίζεται όμορφα ο κώδικας εδώ στο φόρουμ, βάζε τον μέσα σε [ code][ /code] (χωρίς τα κενά).

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...