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;
}
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.
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.
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.
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar