J’essaie d’écrire une fonction qui trouve la plus grande valeur dans un tableau 2D avec une rangée de 4 et un col de 4 où le tableau 2D est rempli avec une entrée utilisateur. Je sais que mon erreur principale est avec le tableau dans la fonction mais je ne suis pas sûr de ce que c’est.
Il serait grandement apprécié que quelqu’un trouve où je me suis trompé plutôt que d’écrire un nouveau code. À moins que je sois allé au sud.
Ma tentative:
#include void largest(int array); int main() { int x,y,trash; int array[4][4]; int row = 4; int col = 4; int bigNum,greater; bigNum=largest(array); printf("Please enter a value: ") for(x=0;x<row;x++) { for(y=0;y<(col);y++) { scanf("%d",&array[x][y]); scanf("%d",&trash); } } printf("The largest number in the array is : ",bigNum); } void largest(int array[][]) { for(x=0; x<row; x++) { for(y=0; y array[x][y+1]) { array[x][y+1] = array[x][y]; } } printf("\n") } big = array[x][y]; return big; }
Il y a quelques problèmes à résoudre ici, le premier est que vous ne pouvez pas avoir int array[][]
tant que paramètre, vous devez fournir toutes les dimensions sauf la première, int array[][4]
suffirait dans ce cas limité. .
Cependant, puisque row
et col
sont des variables locales, elles ne sont pas visibles par le corps de votre largest
fonction. Elles doivent donc être passées, faites la signature.
void largest(int row, int col, int array[row][col]);
S’agissant d’une fonction vide, elle ne peut renvoyer aucune valeur. Cela modifiera le tableau qui a été mis en place, donc les changements seront visibles.
Si vous recherchez une erreur de journal directe, la fonction pour trouver la plus grande est assez folle. Une mise en œuvre plus saine consisterait simplement à suivre l’élément le plus important que vous ayez vu jusqu’à présent:
int largest(int row, in col, int array[row][col]) { int big = array[0][0]; // assume the first element is the largest for (int i = 0; i < row, ++i) { for (int j = 0; j < col; ++j) { if (array[i][j] > big) big = array[i][j]; } } return big; }
vous pouvez alors appeler la fonction principale en tant que
int bigNum = largest(row, column, array);
Vous avez déclaré la fonction la plus grande vide et vous essayez de stocker la valeur de retour de la fonction, ce n’est pas possible, changez-la donc comme type de données int. Ensuite, la ligne et la valeur de la variable col ne sont pas transmises à la fonction la plus grande. soit vous devez le déclarer globalement, soit le passer comme argument à la fonction la plus grande. Et vous essayez d’obtenir la valeur pour la corbeille, je ne sais pas quelle est la nécessité de cela. vous pouvez l’enlever. Et effectuez les modifications suivantes dans la fonction la plus grande:
#include int largest(int [4][4]); int row = 4; int col = 4; int main() { int x,y,trash; int array[4][4]; int bigNum,greater; printf("Please enter a value: "); for(x=0;xbig) { big = array[x][y]; } } printf("\n"); } return big; }
Essayez ce code !!!!!
Vous devez d’abord obtenir les valeurs du tableau de l’utilisateur. Donc, vous devriez être:
int main() { int x,y,trash; int array[4][4]; int row = 4; int col = 4; int bigNum,greater; printf("Please enter a value: ") for(x=0;x
Le tableau n’est pas initialisé et vous le faites.
bigNum=largest(array);
Vous devriez trouver le plus grand lorsque vous avez des éléments dans votre tableau.
Il y a beaucoup d’autres bugs dans ce code:
OMG, quand j’ai parcouru le code, j’ai découvert qu’il y avait un bogue dans presque chaque ligne.
#include int largest(int array[][4]); int main() { int x,y; int array[4][4]; int row = 4; int col = 4; int bigNum; printf("Please enter a value: "); for(x=0;xmax) { max = array[x][y]; } } } return max; }
Erreurs dans votre code
row
, col
, x
et y
sont liées à la méthode principale et vous ne pouvez pas y accéder d’une autre méthode. Examinez Global Variables
pour y accéder où vous voulez dans le fichier programme. scanf for trash
inutile scanf for trash
et printf dans la largest method
.
#include int row = 4; int col = 4; int largestElement(int array[][4],int row); int main() { int x,y; int array[row][col]; int bigNum,greater; printf("Please enter a value: "); for(x=0;x< row;x++) { for(y=0;y< col;y++) { scanf("%d",&array[x][y]); } } bigNum = largestElement(array, sizeof(array) / sizeof(array[0])); printf("The largest number in the array is : ",bigNum); } int largestElement(int array[][4],int row) { int x,y; int big =0; for(x=0;x
Vous essayez ce code pour rechercher les plus gros éléments du tableau à deux dimensions.
#include int largest(int [][4],int ,int); int main() { int x,y,trash; int array[4][4]; int row = 4; int col = 4; int bigNum,greater; printf("Please enter a value: "); for(x=0;x