Ir para conteúdo
Fórum Script Brasil

Biglwp

Membros
  • Total de itens

    17
  • Registro em

  • Última visita

Tudo que Biglwp postou

  1. Biglwp

    Leitura em arquivo

    realmente não está lendo corretamente. está lendo 2293564 no lugar de 5000.
  2. Biglwp

    Leitura em arquivo

    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.
  3. Biglwp

    Leitura em arquivo

    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; }
  4. Biglwp

    Leitura em arquivo

    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...
  5. era exatamente este o problema. obrigado!
  6. editado, para dizer melhor onde começa o erro.
  7. 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.
  8. 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.
  9. Biglwp

    Ponteiros e strings

    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?
  10. Biglwp

    Ponteiros e strings

    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?
  11. Biglwp

    Ajuda em C - Vetores

    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.
  12. 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?
  13. 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.
  14. 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³)
  15. ele está compilando, mas não está imprimindo nada. teria que imprimir a sequencia "i" dos numeros impares.
  16. opa galera, começei a pouco tempo a programar e me deparei com algumas dúvidas sobre os laços for, while, do-while. por exemplo: tenho que fazer um programa que leia do usuario um numero "n". Sabemos que n³ é a soma de numeros ímpares consecultivos. ex: 1³ = 1, 2³ = 3 + 5, 3³ = 7 + 9 + 11, ... sempre o somatorio dos ímpares possuindo "n" termos. o programa tem que imprimir esses termos do somatorio. cheguei a este código abaixo: int main () { int n, n3, i, s; printf ("Digite o numero n: "); scanf ("%d", &n); n3 = n * n * n; s = 0; s = i + s; for (i = 1; s <= n3; i = i + 2) { printf ("\n%d", i); } return 0; } não está funcionando perfeitamente. peço ajuda a vocês, não pra que mandem um código já pronto e tal, mas apenas pra tentarem identificar os erros e me ajudarem a entende-los para que posso terminar o programa. agradeço a atenção.
×
×
  • Criar Novo...