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

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

Δημοσ.

Εχω μια ασκηση να κανω με αντιστοιχους πινακες Α κ Β 20θεσεων.1)να εμφανισεις την προσ8εση των αντισοιχων θεσεων (αυτο το ελυσα ) 2) το γινομενο με την προυπο8εση ο πινακας Β να τρεχει αντιστροφα( αρα εδω θελω την 1θεση του πινακα Α  επι την τελευταια θεση του Β δηλαδη την 19-1).Παρακατω εχω τον κωδικα

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define N 20


main()
{
    int A[N],B[N],i,sum[N],gin[N],temp,counter;

    for(i=0; i<N; i++)
    {
        A=rand() %30;
        B=rand() %30;
        sum=A+B;
        gin=A * B[(N-1)-i];
        printf("A[%d]--> %d \t B[%d]-->%d \t sum[%d]-->%d \t gin[%d]-->%d\n",i,A,i,B,i,sum,i,gin);
            if(A%B==0){ counter++; }
                    
    }
    printf("\n akeraia pollaplasia: %d\n",counter);
    

}

 

κ μου εμφανιζει αυτο:

post-414204-0-06787500-1475617755_thumb.png

  • Moderators
Δημοσ.

Βάλε πρώτα όλες τις τιμές στους πίνακες και μετά κάνε πράξεις. Αν το i σου είναι πχ 2 τότε οι πίνακες έχουν τιμές για τις θέσεις 0, 1 και 2 κι εσύ πας και παίρνεις την τιμή του B[17].

 

 

Άμα έχεις κάποιο πρόβλημα, δοκίμασε να τρέξεις τον αλγόριθμο αρχικά στο μυαλό σου να δεις αν βγάζει νόημα ή/και κάνε debugging.

 

Δημοσ. (επεξεργασμένο)
Πιο απλό. Βέβαια μπορείς να βάλεις και μία global για το size, και να είσαι gg, αλλά μην σπαταλάς μνήμη να βάλεις τα απότελέσματα σε πίνακα και μετά να τα τυπώσεις.

 

Αυτό για το κομμάτι με τις πράξεις, τώρα μετά κάνεις ότι άλλο θες.



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


int main(){
        int A[20], B[20], i;
        for (i = 0; i < 20; i++){
                A[i] = rand() % 30;
                B[i] = rand() % 30;
                printf("A[%d] + B[%d] = %d\n", i, i, A[i] + B[i]);
        }
        for (i = 0; i < 20; i++){
                printf("A[%d] X B[%d] = %d\n", i,19 - i, A[i] * B[19-i]);
        }


        return 0;
}

Επεξ/σία από Dinos_12345
Δημοσ.

 

Πιο απλό. Βέβαια μπορείς να βάλεις και μία global για το size, και να είσαι gg, αλλά μην σπαταλάς μνήμη να βάλεις τα απότελέσματα σε πίνακα και μετά να τα τυπώσεις.
 
Αυτό για το κομμάτι με τις πράξεις, τώρα μετά κάνεις ότι άλλο θες.
#include <stdio.h>
#include <stdlib.h>


int main(){
        int A[20], B[20], i;
        for (i = 0; i < 20; i++){
                A[i] = rand() % 30;
                B[i] = rand() % 30;
                printf("A[%d] + B[%d] = %d\n", i, i, A[i] + B[i]);
        }
        for (i = 0; i < 20; i++){
                printf("A[%d] X B[%d] = %d\n", i,19 - i, A[i] * B[i]);
        }


        return 0;
}

 

 

Ξέχασες να βάλεις το "19 - i" και στο B, στην τελευταία printf  :-) 

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

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

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

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

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

Σύνδεση

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

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