Buscar

Como gravo essa matriz que eu gerei aleatoriamente juntamente com as medias de cada linha em um arquivo .txt !?!? Não sei porque não consigo gravar !

float matriz(void){
int i,j;
int n,o;
float soma[50];
float media[50];
printf("\n\tEntre com o numero de provas (Ex.: 4): ");
scanf("%d",&o);
printf("\n\tEntre com o numero de alunos (Ex.: 30): ");
scanf("%d",&n);
float m[100][50];
for(i=0;i<n;i++){
for(j=0;j<o;j++){
m[i][j] = (rand() %105 + 1)/10.5;
soma[i] = soma[i] + m[i][j];
media[i] = (soma[i])/o;
}
}
/*for(i=0;i<n;i++){
printf("\n\t");
for(j=0;j<o;j++){
printf("\t%.2f",m[i][j]);
}
printf("\t\t%.2f\t",media[i]);
}*/
FILE *dados;
dados = fopen("dados.txt","w");
if(dados != NULL) printf("\n\n\tArquivo aberto com sucesso\n\t");
else{
printf("\n\tERRO ao abrir o arquivo\n\t");
system("pause");
exit(1);
}
for(i=0;i<n;i++){
for(j=0;j<o;j++){
fprintf(dados,"%f\t",m[i][j]);
fprintf(dados,"%t");
}
fprintf(dados,"%f",media[i]);
fprintf(dados,"%t");
fprintf(dados,"\n");
}
if (ferror){
printf("\n\tErro ao gravar no arquivo\n\t");
system("pause");
exit(2);
}
fclose(dados);
dados = fopen("dados.txt","r");
for(i=0;i<n;i++){
for(j=0;j<o;j++){
fscanf(dados,"%f\t",&m[i][j]);
}
fscanf(dados,"%f",&media[i]);
}
fclose(dados);

}

int main(){
printf("\n\t\t\tNotas das provas e media de cada aluno\n\t\n");
printf("\n\tObs.: Cada linha representa um aluno e as colunas representam as provas, sendo que a ultima representa a media de cada aluno.\n\n");
float Matriz[100][50];
Matriz[100][50] = matriz();
return 0;
}

💡 3 Respostas

User badge image

Andre Smaira

Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Algoritmo e Estrutura de Dados.


Primeiro para gravar os valores gerados em um arquivo de texto, primeiramente é necessário criar o arquivo de texto, abrir o arquivo e passar os números gerados aleatoriamente para o arquivo criado. Desta forma é necessário implementar o seguinte trecho no algoritmo.

FILE *pArq;

int nLin, nCol;

/*

.

Código de geração da matriz aleatória de dados,

.

*/

if((pArq = fopen("Matriz", "w")) == 0x0) {

printf("erro.");

exit(1);

}

for(i=0; i<nLin; i++) {

for(j=0; j<nCol; j++)

fprintf(pArq, "%d\t", matriz[i][j]);

fprintf(pArq, "\n");

}

if(fclose(pArq)) {

printf("erro.");

exit(1);

}


Portanto, para a execução correta do problema proposto, primeiramente é necessário que seja criado o arquivo texto que receberá os dados gerados, em seguida é implementado o código de geração da matriz e ao final a passagem dos dados para a matriz, onde é necessário a abertura do arquivo e assim a passagem do arquivo e ao final, fechar o arquivo pois, existe grande chance do arquivo ser corrompido e até gerar erros.

0
Dislike0
User badge image

Andre Smaira

Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Algoritmo e Estrutura de Dados.


Primeiro para gravar os valores gerados em um arquivo de texto, primeiramente é necessário criar o arquivo de texto, abrir o arquivo e passar os números gerados aleatoriamente para o arquivo criado. Desta forma é necessário implementar o seguinte trecho no algoritmo.

FILE *pArq;

int nLin, nCol;

/*

.

Código de geração da matriz aleatória de dados,

.

*/

if((pArq = fopen("Matriz", "w")) == 0x0) {

printf("erro.");

exit(1);

}

for(i=0; i<nLin; i++) {

for(j=0; j<nCol; j++)

fprintf(pArq, "%d\t", matriz[i][j]);

fprintf(pArq, "\n");

}

if(fclose(pArq)) {

printf("erro.");

exit(1);

}


Portanto, para a execução correta do problema proposto, primeiramente é necessário que seja criado o arquivo texto que receberá os dados gerados, em seguida é implementado o código de geração da matriz e ao final a passagem dos dados para a matriz, onde é necessário a abertura do arquivo e assim a passagem do arquivo e ao final, fechar o arquivo pois, existe grande chance do arquivo ser corrompido e até gerar erros.

0
Dislike0
User badge image

RD Resoluções

Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Algoritmo e Estrutura de Dados.


Primeiro para gravar os valores gerados em um arquivo de texto, primeiramente é necessário criar o arquivo de texto, abrir o arquivo e passar os números gerados aleatoriamente para o arquivo criado. Desta forma é necessário implementar o seguinte trecho no algoritmo.

FILE *pArq;

int nLin, nCol;

/*

.

Código de geração da matriz aleatória de dados,

.

*/

if((pArq = fopen("Matriz", "w")) == 0x0) {

printf("erro.");

exit(1);

}

for(i=0; i<nLin; i++) {

for(j=0; j<nCol; j++)

fprintf(pArq, "%d\t", matriz[i][j]);

fprintf(pArq, "\n");

}

if(fclose(pArq)) {

printf("erro.");

exit(1);

}


Portanto, para a execução correta do problema proposto, primeiramente é necessário que seja criado o arquivo texto que receberá os dados gerados, em seguida é implementado o código de geração da matriz e ao final a passagem dos dados para a matriz, onde é necessário a abertura do arquivo e assim a passagem do arquivo e ao final, fechar o arquivo pois, existe grande chance do arquivo ser corrompido e até gerar erros.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis


✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta.

User badge image

Outros materiais