Ir ao conteúdo

C++ Meu 'for' não funciona, o que há de errado?


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<locale.h>
#include<time.h>
#include<cmath>
#include<iostream>
#include<string>

using namespace std;

int main(){
setlocale(LC_ALL,"");


    //Tmatriz = Tamanho da Matriz


int i , j , k, Tmatriz;
    cout << "Defina o tamanho da Matriz (Quadrada): ";
    cin >> Tmatriz;
int matriz[Tmatriz][Tmatriz];


    //Atribuindo Valores para a matriz
    for(i = 0; i < Tmatriz; i++){
        for(j = 0; j < Tmatriz; j++){
            cout << "\nEscolha uma valor para a posição ["<<i<<","<<j<<"]: ";
            cin >> matriz[i][j];
        }
    }



    //Imprimindo Valores da matriz
    for(i = 0; i < Tmatriz; i++){
        for(j = 0; j < Tmatriz; j++){
            cout << matriz[i][j] << " " ;
        }
        cout << endl;
    }



    //valorlinha = valor pela qual a linha vai ser multiplicada
    //linha = linha que vai ser multiplcada pelo 'valorlinha'


    int linha, valorlinha, coluna;
    cout << "\nEscolha a Linha que vai ser multiplicada: ";
    cin >> linha;
    cout << "\nAgora escolha um valor: ";
    cin >> valorlinha;
    cout << k << endl;


        for( k = 0; k < Tmatriz; k++);{
        cout << "linha-1: "<<linha-1 << " k: " << k << " ValorLinha: " <<valorlinha << " tamanhoMatriz: "<<Tmatriz;
        matriz[linha-1][k] = valorlinha * matriz[linha-1][k];
    }


    cout << endl;

system("pause");
return 0;
}

 

 

O erro acontece aqui:

Citação

        for( k = 0; k < Tmatriz; k++);{
        cout << "linha-1: "<<linha-1 << " valor de k: " << k << " ValorLinha: " <<valorlinha << " tamanhoMatriz: "<<Tmatriz;
        matriz[linha-1][k] = valorlinha * matriz[linha-1][k];
    }

 

este for simplesmente está retornando um único valor, coloquei um cout << k << endl; antes dele para ver o valor de k (que é 0), mas quando eu executo o código, ele envia o cout uma vez apenas.

 

exemplo, fiz uma matriz 4x4, com valores de 1 a 16, queria multiplicar a linha 3 pelo número 5, meu retorno é este:

 

Citação

Agora escolha um valor: 5
0
linha-1: 2 k: 4 ValorLinha: 5 tamanhoMatriz: 4

O 0 é por conta do cout << k << endl;

 

a questão é: Por que ele mostra esse resultado apenas uma vez? Não deveria se repetir por conta do for?

 

O objetivo do código é montar uma matriz e depois multiplicar uma linha dela por um número. 

 

(Todos aqueles "includes" estão ali porque sempre que eu vou começar a escrever um código, eu os coloco para "decorar" a existência deles)

  • Curtir 1
  • Solução
Postado

@Filipe Antony    você colocou ponto e virgula no for .


for( k = 0; k < Tmatriz; k++)  /// esse ponto_e_virgula   ;
{
  cout << "linha-1: "<<linha-1 << " k: " << k << " ValorLinha: " <<valorlinha << " tamanhoMatriz: "<<Tmatriz;
  matriz[linha-1][k] = valorlinha * matriz[linha-1][k];
}

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!