Ir para conteúdo
Fórum Script Brasil
  • 0

Como gravar uma matriz de tipo float em um arquivo txt?


Nandaa

Pergunta

No programa a seguir, eu aleatorizei a matriz de forma que o usuário possa inserir o seu tamanho manualmente e de forma que os valores dessa matriz variem de 0 ate 10 (considerando valores decimais). Até aí tudo bem. O problema começou quando eu tentei gravar essa matriz em um arquivo.

Esses são os ERROS que ocorrem:

C:\Users\Annanda\Documents\lal.cpp In function 'void Arquivo()':

61 28 C:\Users\Annanda\Documents\lal.cpp [Error] invalid types 'float[int]' for array subscript

64 29 C:\Users\Annanda\Documents\lal.cpp [Error] invalid types 'float[int]' for array subscript

77 28 C:\Users\Annanda\Documents\lal.cpp [Error] invalid types 'float[int]' for array subscript

79 29 C:\Users\Annanda\Documents\lal.cpp [Error] invalid types 'float[int]' for array subscript

29 C:\Users\Annanda\Documents\Makefile.win recipe for target 'lal.o' failed

Não sei mais o que fazer!!! :( :(

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <time.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
FILE *dados;
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[j] = (rand() %105 + 1)/10.5;
soma = soma + m[j];
media = (soma)/o;
}
}
for(i=0;i<n;i++){
printf("\n\t");
for(j=0;j<o;j++){
printf("\t%.2f",m[j]);
}
printf("\t\t%.2f\t",media);
}
}
void Arquivo(){
float media,m;
int i,n,j,o;
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[j]);
fprintf(dados,"%t");
}
fprintf(dados,"%f",media);
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[j]);
}
fscanf(dados,"%f",&media);
}
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");
Arquivo ();
matriz();
return 0;
}
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...