Array
(
)

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

Ane
   - 05 ago 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);
}


Rodc
   - 07 ago 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.
#Código

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");
}



Ane
   - 08 ago 2009

ok, deu certo
muito obrigado


Ane
   - 08 ago 2009

ok, deu certo
muito obrigado