imprimir matriz string outro metodo (não onde foi atribuido)

Delphi

05/08/2009

olá
estou tentando imprimir uma matriz de string fora do metodo onde foi atribuido dados a ela e não dá certo (dentro do metodo onde são atribuidos as strings dá certo.
O metodo imprimeVetor deveria imprimir ...
segue meu codigo
class funcionario
{ public:
char nome[2][10];
int numFunc;
int salario[5];
void insereNumFuncionarios(int n);
void imprimeVetor(int n);
};
#include <iostream>
include ´exercVetor2.h´
void funcionario::insereNumFuncionarios(int n)
{ printf(´digite nome do funcionario´);
scanf(´¬s´,&nome[n]);
printf(´digite salario´);
scanf(´¬d´,&salario[n]);
}
void funcionario::imprimeVetor(int n)
{ int i;
for(i=1; i<n; i++)
printf(´\nPosição Vetor ¬d´,i);
printf(´¬s´,&nome[i]);
printf(´¬d´,salario[i]);
}
int main()
{ int i,a=1;
int n=1;
funcionario F1;
printf(´Quantos funcionarios´);
scanf(´¬d´,&F1.numFunc);
printf(´¬d´,F1.numFunc);
a=F1.numFunc;
for(i=1; i<=a; i++)
{F1.insereNumFuncionarios(n);
n=n+1;
}
F1.imprimeVetor(n);
}


Ane

Ane

Curtidas 0

Respostas

Rodc

Rodc

05/08/2009

Segue seu código corrigido e melhorado. Tinha vários erros de lógica, como por exemplo, sua matriz tem duas posições, nome[0] e nome[1], porém você tentava imprimir os dados de nome[1] e nome[2], pegando lixo de memória.
class funcionario
{
public:
    char nome[2][10];
    int numFunc;
    int salario[5];
    void insereNumFuncionarios(int n);
    void imprimeVetor(int n);
};
include <iostream.h>
include <stdio.h>
void funcionario::insereNumFuncionarios(int n)
{
    printf("¬d - digite nome do funcionario: ", n+1);
    scanf("¬s",nome[n]);
    printf("    digite salario: ");
    scanf("¬d",&salario[n]);
} 
void funcionario::imprimeVetor(int n) 
{
    int i;
    for(i=0; i<n; i++)
    {
        printf("\nPosição Vetor ¬d - ",i);
        printf("¬s - ",nome[i]);
        printf("¬d",salario[i]);
    }
} 
int main() 
{
    int i;
    funcionario F1;
    printf("Quantos funcionarios: ");
    scanf("¬d",&F1.numFunc);
    for(i=0; i<F1.numFunc; i++)
    {
    F1.insereNumFuncionarios(i);
    }
    F1.imprimeVetor(F1.numFunc);

    printf("\n");
    system("PAUSE");
}



GOSTEI 0
Ane

Ane

05/08/2009

ok, deu certo
muito obrigado


GOSTEI 0
Ane

Ane

05/08/2009

ok, deu certo
muito obrigado


GOSTEI 0
POSTAR