2010-07-13 9 views
0

Comment écrire une fonction pour additionner le contenu de chaque ligne d'un tableau 2D? Pour ajouter le contenu de chaque colonne? mon code (jusqu'à présent):Comment ajouter des lignes (et des colonnes) d'un tableau 2D

#include <iostream> 

using namespace std; 
const int QUARTER = 4; 

void getdata(float [][QUARTER], int); 
void displaydata (float [][QUARTER], int); 
void quartertotal(float [][QUARTER], int); 


int main() 
{ 
    const int DIVISION = 6; 
    float data[DIVISION][QUARTER] = {0}; 
    float getarray[DIVISION][QUARTER]; 


    for (int a=0; a < DIVISION; a++) 
    { 
    for (int b = 0; b< QUARTER; b++) 
    { 
     cout << "Enter sales for Division "; 
     cout<< a+1; 
     cout<< " Quarter "; 
     cout<< b+1; 
     cout<< ": "; 
     cin >> getarray[a][b]; 
    } 
    } 

    displaydata(getarray, DIVISION); 
    cout << endl; 

    quartertotal(getarray,DIVISION); 
    cout << endl; 

    cout << endl << endl; 

    return 0; 

} 

(float getarray[][QUARTER], int divisions) 
{ 
    cout<<"\t\t\t\tQ1\tQ2\tQ3\tQ4\n"; 
    for (int i = 0; i < divisions; i++) 
    { 
    cout << "Sales for Division " << (i+1) << " are: \t"; 
    for (int j=0; j < QUARTER; j++) 
     cout << getarray[i][j] << "\t"; 
    cout << endl; 
    } 
} 
+0

Veuillez mieux formater le code. – PeterK

+0

Je ne sais pas vraiment comment ... J'ai passé du temps à essayer de le formater, mais pour une raison quelconque le site ne me laisse pas – mokwi8

+0

Qu'est-ce que '(float getarray [] [QUARTER], int divisions)' supposé être? – Jacob

Répondre

0

Vous avez déjà une façon d'aller à chaque cellule dans le tableau pour obtenir votre chiffre d'affaires pour la division/trimestre, alors que vous faites que vous pourriez résumer les données.

a\b 1 2 3 4 
1 
2 
3 
4 
5 
6 

Si vous souhaitez ajouter une ligne (Division) ajouter tous les b pour la même un Si vous souhaitez ajouter un col (quartier) ajouter tous les a pour la même b.

pour obtenir division 1

a = 1 
for each b 
row += getarray[a][b]; 
+0

Je ne comprends pas comment ajouter les éléments, c'est mon problème. En classe, nous avons passé en revue des tableaux pour quelques classes, et pour une raison quelconque, je ne l'obtiens toujours pas. – mokwi8

0
int row_total[DIVISION] = {0}; 

for (int a=0; a < DIVISION; a++) 
    { 
     for (int b = 0; b< QUARTER; b++) 
     { 
      row_total[a] += getarray[a][b]; 
     } 
    } 

Je ne sais pas ce que vous essayez d'atteindre avec ce code. Que doit faire data? En outre, puisqu'il s'agit de devoirs, vous êtes probablement limité à utiliser des tableaux plutôt que std::vector. Je suppose que les allocations dynamiques ne sont pas non plus possibles --- ou n'est-ce pas le cas?

+0

data est le prototype d'une fonction utilisée plus tard dans le programme. Je suis limité à utiliser des tableaux – mokwi8

0

De vos commentaires de ne pas comprendre les tableaux:

Voici une façon d'imaginer un tableau: Imaginez une rangée de boîtes aux lettres. Chaque boîte aux lettres contient un courrier contenant un numéro. Pour additionner chacun de ces nombres, vous devez ouvrir chaque boîte aux lettres, lire le numéro sur le papier à l'intérieur, et l'ajouter à un compte courant, disons sur un presse-papiers que vous portez avec vous. Une fois que vous avez visité chaque boîte aux lettres et que vous avez comptabilisé son total dans votre Presse-papiers, le Presse-papiers contient la somme finale des boîtes aux lettres. Les lignes de boîtes aux lettres représentent un tableau à 1 dimension. Le presse-papiers représente une variable pour le comptage des valeurs.

Pour un tableau à deux dimensions, imaginons que vous ayez un certain nombre de rues à visiter, chaque rue ayant le même nombre de boîtes aux lettres. Pour recouper chaque rue, utilisons un morceau de papier différent par rue sur votre presse-papiers pour le décompte. Le cliboard est juste devenu un tableau de papiers avec des décomptes au lieu d'un seul pour le total des boîtes aux lettres de chaque rue. La chose amusante à propos de la programmation est très souvent, tous les jours les exemples s'inscrivent parfaitement dans une idée de programmation. Ce tas de papiers sur un presse-papiers pourrait également être considéré comme une "pile" de papiers où vous ne pouvez accéder facilement au papier sur le dessus. Si, chaque fois que vous avez ajouté un morceau de papier à votre pile, vous l'avez placé sur le fond plutôt que sur le dessus, cela devient une "file d'attente". Etc.

+0

Je comprends l'idée abstraite. Je ne comprends pas comment les manipuler. – mokwi8

1

J'espère que vous serez à l'aise avec le concept de tableaux à 1 dimension. Voici d'abord un aperçu des tableaux multidimensionnels (2D, 3D, etc.) - Les tableaux bidimensionnels peuvent être considérés comme un groupe (ou une matrice technique) de plusieurs tableaux multidimensionnels. De même, l'idée peut être étendue plus loin, c'est-à-dire qu'un réseau tridimensionnel est un réseau de plusieurs réseaux bidimensionnels et ainsi de suite.

Pour en revenir à votre question, un bon code a déjà été posté par jacob.

Questions connexes