
Biglwp
Membros-
Total de itens
17 -
Registro em
-
Última visita
Sobre Biglwp

Biglwp's Achievements
0
Reputação
-
realmente não está lendo corretamente. está lendo 2293564 no lugar de 5000.
-
o programa compila, porem não responde. não chega ao final do codigo (retornar 0). e não imprime nada no arquivo de saida.
-
troquei pelo teu código, e passou a funcionar para entradas pequenas (testei com algumas de no maximo 5 strings). só não está funcionando para entradas muitos grandes ( 5 mil strings por ex), provavelmente algum conflito de memoria. o novo código está assim: #include <stdio.h> #include <stdlib.h> #define MAX 1847 int main() { FILE * nfile = fopen ("in.txt", "r"); FILE * out = fopen ("out.txt", "w"); long int n; fscanf (nfile, "%ld", &n); char str [n][MAX]; int i; for (i = 0; i < n; i++) { fscanf (nfile, "%s", &str[i]); } for (i = 0; i < n; i++) { fprintf (out, "%s\n", str [i]); } return 0; }
-
estou tentando fazer um programa que pega como entrada varias strings de um certo arquivo de texto. a entrada é nesse esquema: inteiro "n" (quantidade de strings abaixo) string 1 string 2 ... string "n" EOF (fim do arquivo) ou seja, a primeira linha contém a quant de strings que terei que ler (uma em cada linha). fiz o código abaixo para armazaenar as strins em uma matriz, mas o programa não está rodando, e eu não consigo identificar o erro: #include <stdio.h> #include <stdlib.h> int main() { FILE * nfile = fopen ("in.in", "r"); int n; fscanf (nfile, "%d", &n); char * str [n]; int i, a; char c; for (i = 0; i <= n; i++) { a = 0; while ((c = fgetc (nfile)) != '\n') { a++; } str [i] = (char *) malloc ((a + 1) * sizeof (char)); fseek (nfile, a, SEEK_CUR); fscanf (nfile, "%s", str [i]); } for (i = 0; i <= n; i++) { printf ("\n%s", str [i]); } return 0; } qual seria o erro no código? o programa entra em algo parecido a um loop "infinito". ajudas...
-
era exatamente este o problema. obrigado!
-
editado, para dizer melhor onde começa o erro.
-
bem, acho que o propósito do programa esta bem claro no código, mas vou explicar melhor: é uma pesquisa que recebe alguns dados de certos habitantes. o programa tem que calcular a média do salario deles e do numero de filhos de cada cidadão, e dizer quais deles estão com salario abaixo da media ou possui mais filhos que a media da populção.
-
opa, durante a execução deste programa, acontece um erro logo no final. não estou conseguindo identificar o erro no código, se alguém o identificar, posta aqui por favor. #include <stdio.h> #include <stdlib.h> typedef struct pesquisa { int idade; char sexo; float salario; int nFilhos; } Habitante; int main () { int i, k = 1; int n; double mediaS = 0, mediaF = 0; printf ("Digite o numero de habitantes da pesquisa: "); scanf ("%d", &n); int aux [n], aux2 [n]; Habitante * habitantes; habitantes = (Habitante *) malloc (n * sizeof (Habitante)); for (i = 0; i < n; i++) { printf ("\n\nDigite as informacoes do habitante %d [separadas por espaco]: ", k); printf ("\nIdade, sexo [m ou f], salario, numero de filhos: "); scanf ("%d %c %f %d", &habitantes [i].idade, &habitantes [i].sexo, &habitantes [i].salario, &habitantes [i].nFilhos); k++; } for (i = 0; i < n; i++) { mediaS = mediaS + habitantes [i].salario; mediaF = mediaF + habitantes [i].nFilhos; } mediaS = mediaS / n; mediaF = mediaF / n; printf ("\nA media do salario dos habitantes é: %f", mediaS); printf ("\nA media do numero de filho dos habitantes é: %f", mediaF); int p = 0; int p1 = 0; for (i = 0; i < n; i++) { if (habitantes [i].salario < mediaS) { aux [p] = i + 1; p++; } if (habitantes [i].nFilhos > mediaF) { aux2 [p1] = i + 1; p1++; } } printf ("\n\nOs habitantes com salario abaixo da media foram: "); for (i = 0; i <= p; i++) { if (habitantes [aux [i] - 1].sexo == 'f') { printf ("\nA habitante %d", aux [i]); } else { printf ("\nO habitante %d", aux [i]); } } //O ERRO COMEÇA AQUI //entra em um tipo de loop infinito. printf ("\n\nOs habitantes com o numero de filho acima da media foram: "); for (i = 0; i <= p1; i++) { if (habitantes [aux2 [i] - 1].sexo == 'f') { printf ("\nA habitante %d", aux2 [i]); } else { printf ("\nO habitante %d", aux2 [i]); } } return 0; } obrigado.
-
utilizando o "scanf", o programa não lê nenhuma linha da string. simplismente "pula" a etapa de ler o texto. realmente não consigo entender o porque disto: no scanf utilizei assim: scanf ("%[^\n]", texto [i]); o compilador ignora este comando... alguém sabe o porque disto?
-
tenho que fazer um algoritimo de busca, na qual o usuário digita um texto de 'n' linhas (dado pelo usuário), e uma 'palavra-chave'. o programa deverá localizar esta palavra chave no texto, e dizer quantas evzes ela ocorre, e em quais linhas. estou no começo do programa, mas não estou conseguindo 'ler' a primeira linha: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int n, i, k = 1; char strkey [10]; printf ("Digite quantas linhas você ira digitar: "); scanf ("%d", &n); printf ("\nDigite agora a sua palavara chave: "); scanf ("%s", strkey); char texto [n] [30]; for (i = 0; i < n; i++) { printf ("\nDigite a sua linha %d: ", k); gets (texto [i]); k++; } for (i = 0; i < n; i++) { printf ("\n"); printf ("%s", texto [i]); } return 0; } quando executa o programa, ele não faz o scanf da linha ( texto [0] ). alguém sabe onde está o erro?
-
velho, valeu mesmo! eu realmente pensava que era possível imprimir todo o vetor de uma vez... caso apareça novas dúvidas neste programa eu posto neste mesmo tópico depois.
-
Para fazer um programa, preciso começar pedindo ao usuário que determine os coeficentes de dois polinomios de certo grau (escolhido pelo usuário). Fiz o código e no final pedi que o programa imprimisse os vetores como uma forma de teste. porém não está funcionando corretamente. #include <stdio.h> #include <stdlib.h> int main () { int poli1 [51], poli2 [51]; int i, j, n, n2, k; printf ("Digite o grau do polinomio 1: "); scanf ("%d", &n); k = n; for (i = 0; i < n; i++) { printf ("\nDigite o coeficiente de x^%d\n", k); scanf ("%d", &poli1 [i]); k--; } printf ("\nDigite agora o termo independente do polinomio 1: "); scanf ("%d", &poli1 [n]); // n = termo independente (ultimo termo do vetor) printf ("\nAgora digite o grau do polinomio 2: "); scanf ("%d", &n2); k = n2; for (j = 0; j < n2; j++) { printf ("\nDigite o coeficiente de x^%d\n", k); scanf ("%d", &poli2 [j]); k--; } printf ("\nDigite agora o termo independente do polinomio 2: "); scanf ("%d", &poli2 [n2]); // n2 = termo independente (ultimo termo do vetor) printf ("%d %d", poli1, poli2); // teste return 0; } Poderiam me ajudar a identificar o erro?
-
Mnemonic, entendi a tua lógica, mas não entendi direito como tu utilizou a variável "x" no teu código. pode explicar melhor? outras sugestões são bem-vindas.
-
opa, pequeno erro no código lá encima. tinha utilizado o "i" antes do for declarar um valor pra ele. até agora tá assim. int main () { int n, n3, i, s; printf ("Digite o numero n: "); scanf ("%d", &n); n3 = n * n * n; s = 0; for (i = 1; s <= n3; i = i + 2) { s = i + s; printf ("\n%d", i); } return 0; } mas o prob é que ta imprimindo todos os termos, e não só os "n" ultimos (que somados dão n³)