-6
votes

La taille de la matrice de magasin n'est pas connue

Je veux créer le programme pour inverser la matrice. Mais je reçois une erreur que la taille de stockage de la matrice a [] code> n'est pas connue.

#include<iostream>
using namespace std;

int main()
{
    int a[];
    int b, c;
    cin >> b;
    for (int i = 0; i < b; i++)
        cin >> a[i];
    for (c = b; c >= 0; c--)
        cout << a[c] << endl;

    return 0;
}


14 commentaires

Qu'est-ce qui manque de claire sur le message d'erreur? Vous n'avez pas spécifié de taille pour le tableau.


Je veux déclarer la taille de la matrice en donnant des informations.


@Shivamshama std :: vecteur . Avez-vous trouvé cela dans le cadre de vos recherches?


@Shivamshama vous ne pouvez pas. Utilisez un std :: vecteur et push_back () à la place.


Pouvez-vous me montrer le code de programme pour inverser un tableau où la première ligne d'entrée contient la taille de la matrice.


Je suis nouveau à la programmation. Quelqu'un me suggère de meilleures structures de données et d'algorithme livre de C ++


@Shivamshaarma Arrays dans C ++ ont des tailles fixes. Contrairement à de nombreuses autres langues, leur taille doit savoir être connue à la création et peut jamais changer. Si vous voulez un conteneur de matrice de taille dynamique, essayez std :: vecteur. Mais notez qu'il ne sera redimensionné que lorsque vous utilisez l'insertion appropriée ou redimensionner des fonctions membres. Il suffit d'accéder à des éléments limités ne pourra pas le faire pousser. C'est simplement une erreur (que le compilateur n'est pas tenu de signaler). Edit: republié pour corriger plusieurs fautes de frappe.


@Shivamsharshas Voici un Liste Nous gardons.


Ceci est demandé tous les jours. Chaque jour. S'il vous plaît faire des recherches avant de poster!


@Light ... plusieurs fois que je dois ajouter: p


je l'ai maintenant. Mais quand je donne la taille maximale de la matrice comme un [100], il me donne une sortie inattendue.


pour (c = b ... B est hors limites. Vous avez besoin c = B-1 dans cette situation.


@TedlylyngMo travaillant maintenant..Merci beaucoup


Mieux encore après le changement et l'utilisation des vecteurs, utilisez des itérateurs inverse!


4 Réponses :


3
votes

Je veux créer le programme pour inverser le tableau

Utilisez simplement std :: vecteur pour cela.

Un bon début serait: xxx


0 commentaires

-2
votes

Vous devez attribuer une taille maximale de la matrice. Essayez simplement cela en attribuant une longueur d'un tableau Ex Int a [5];


4 commentaires

Pas que simple - vous imposez une longueur maximale pour la matrice de cette façon et que l'utilisateur pourrait saisir un plus grand nombre! Vous devez donc également vérifier cette affaire et fournir une manipulation d'erreur appropriée.


Regardez les réponses à l'aide d'un std :: vecteur à la place.


@Aconcagua Pouvez-vous me suggérer un bon livre de programmation pour apprendre la programmation en C ++ ou tout cours gratuit en ligne?


@Shivamsharsharma regarde ici .



1
votes

extension to Jejo 'S Réponse :

Ce dernier est simple, élégant et efficace - pour n'importe quel type aussi simple que int . Si vous avez affaire à des types plus complexes, cependant, alors avec cette approche, vous devez d'abord initialiser tous les éléments, puis copier ou déplacer-attribuer les objets finaux, que vous voudriez probablement éviter. Dans un tel cas, l'approche suivante est supérieure: xxx


0 commentaires

1
votes

Vous ne définissez pas une taille pour le tableau a [] , donc le message d'erreur. Les tableaux doivent avoir une taille spécifiée. Dans votre cas, vous devez utiliser l'opérateur nouveau [] pour allouer le tableau après avoir déterminé cette taille de l'utilisateur, par exemple: xxx p> Cependant, le préféré Mode d'utilisation d'une matrice de taille dynamique en C ++ consiste à utiliser le conteneur standard std :: vecteur à la place, par exemple: xxx


0 commentaires