imprimir matriz string outro metodo (não onde foi atribuido)
05/08/2009
0
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);
}
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
Curtir tópico
+ 0
Responder
Posts
07/08/2009
Rodc
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"); }
Responder
Clique aqui para fazer login e interagir na Comunidade :)