Ir para o conteúdo

Pesquisar na Comunidade

A mostrar resultados para tags ''c''.



Mais opções de pesquisa

  • Pesquisa por Tags

    Introduza as tags separadas por vírgulas.
  • Pesquisar por Autor

Tipo de Conteúdo


Fórum

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Matemática
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categorias

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Procurar resultados em...

Pesquisar conteúdos que contêm...


Data de Publicação

  • Início

    Fim


Última Actualização

  • Início

    Fim


Filtrar por número de...

4972 resultados

  1. Boa tarde! Sou membro recente do forum, recomendado por Colega de curso, e sou ainda verde em matéria de C. Estou perante uma situação em que não consigo aferir o nº de caracteres contidos numa string, e tudo isto aparentemente porque a string tem várias linhas. Consigo obter a contagem de linhas, vogais e etc, mas no que toda a caracteres (todos incluindo os espaços e especiais), apenas devolve os da 1ª linha. Utilizo a strlen frequentemente para manipular strings, mas de facto nunca o fiz para conjuntos tão volumosos com é caso (cerca de 150 linhas, com aproximadamente 50 carateres em cada uma). Já tentei utilizar o EOF (end of file) para o strlen ler todo o stdin recebido até ao final, mas o meu resulta é sempre o mesmo... apenas consigo contar a 1ª linha e dados. Algém consegue "ver" o que está errado? A entrada de dados é por stdin, e serve com exemplo a string infra: Código Linguagem Programa Instrução Atribuição (...) Eis o que tenho atualmente (apenas parte, pois na contagem do "resto", está ok) #include <math.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include <limits.h> #include <stdbool.h> #define MAXTEXT 10000 // função para contagem de linhas, vogais, consoantes e caracteres que cruza a // string introduzida com os vetores de vogais e consoantes void quantidade(char *texto, int contador) { char consoante[43] = {'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'X', 'Y', 'Z', 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'}; char vogal[11] = {'A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u'}; int i, j, k, l, vogais = 0, consoantes = 0, carEspecial = 0, numLinhas = 0, count = 0; contador = strlen(texto); while (fgets(texto, MAXTEXT, stdin) != NULL) { numLinhas++; for (i = 0; i < contador; i++) { for (j = 0; j < 11; j++) { if (texto == vogal[j]) { vogais++; } } } for (k = 0; k < contador; k++) { for (l = 0; l < 43; l++) { if (texto[k] == consoante[l]) { consoantes++; } } } } printf("%d", numLinhas); printf(" %d", contador); /* »»»» AQUI RESIDE O ERRO «««« Conta-me apenas os caracteres da 1ª linha, e não todas as linhas lidas no stdin*/ printf(" %d", consoantes); printf(" %d", vogais); } int main() { char texto[MAXTEXT]; int contador, count; fgets(texto, MAXTEXT, stdin); quantidade(texto, contador); return 0; }
  2. jtc-carr

    Somas a partir de ficheiro

    Queria a partir de um ficheiro fazer varias somas do seu conteúdo por exemplo de, vogais, números, consuantes, somo bem as linhas, mas para o restante a função mas não funciona como devia, só contando o que esta na ultima linha, como faço para que some todas as linhas usando a função que tenho feita soma (char *str, char*vogal, char*consoante) FILE *f = stdin; while (fgets (ficheiro, 1000, stdin) != NULL) { insiro no stdin: 123456 bcd fgh aeiouae r Output obtido: 5 linhas 20caracteres 1vogal 0numeros 0consoantes Output pretendido:5 linhas 40caracteres 7vogal 6numeros 7consoantes
  3. Boa noite a todos, Após muitas horas a partir pedra no pc e depois de muita consulta na internet continuo com um problema muito complicado que me parece ter uma solução simples mas qual????? Passo a explicar, a titulo de exemplo tenho seguinte input por parte do utilizador: Portugal França Alemanha e Japão Espanha Já consegui contar todos os caracteres e separa-los mediante determinadas características usando por exemplo while (x!='P') { if (x=='P')....elseif.... e conto em cada essa letra para um contador que no fim me dará o total. No entanto, quando a função dá de caras com o \n deixa de contar. Já usei scanf("%c", &x) e consegui reproduzir todos os valores de entrada no meu outpu, no entanto quando terminam as letras, ele continua até ao infinito.... Reparei que o input do utilizador em ASCII termina com 10 10 , ou seja newline=\n newline=\n. Já estou doido com isto, parecia tão fácil e agora até olheiras tenho de tanto tempo a ler , ver videos e exprimentar o código. Alguém tem uma ideia de como ler newline=\n ( até aqui consegui, o pior é parar) e continuar a contar até terminar no 10 10. // obter a cada um e colocar numa posição do vetor do { scanf("%c", &str); printf("%c", str); if ((str == 'a' || str == 'e' || str == 'i' || str == 'o' || str == 'u') || (str == 'A' || str == 'E' || str == 'I' || str == 'O' || str == 'U')) { letrasv++; } } while(str!=str[i-1]);
  4. Gonçalo Neves

    Desenvolver uma tabela de strings numa tabela bideimensional

    Bom dia, eu tenho este exersiso que não consigo resolver algém me pode ajudar. 1.a-Desenvolva uma função que receba uma tabela de strings, cada uma com o máximo de 40 caracteres, e devolva o índice da maior delas. Nota: A função recebe, uma tabela bidimensional, sendo que a primeira dimensão da tabela não deve ser especificada. 1.b- Escreva um programa que peça ao utilizador 3 nomes e, usando a função anterior, identifique qual o mais comprido.
  5. Zherkezhi

    Problemas com alocação dinâmica de matriz

    Estou tentando alocar dinamicamente uma matriz, porém estou tendo alguns problemas no tempo de execução. Segue o código abaixo para uma melhor análise do problema: #include <time.h> #include <stdio.h> #include <stdlib.h> int **m_malloc(size_t rows, size_t columns){ int **mat=malloc(sizeof(int)*rows); for(size_t i=0; i<rows; i++){ mat[i]=malloc(sizeof(int)*columns); } return mat; } void m_show(int *mat[], size_t rows, size_t columns){ printf("\n"); for(size_t i=0; i<rows; i++){ for(size_t j=0; j<columns; j++){ printf("[%d] ", mat[i][j]); } printf("\n"); } } void m_fill(int *mat[], size_t rows, size_t columns){ int value; srand(time(NULL)); for(size_t i=0; i<rows; i++){ for(size_t j=0; j<columns; j++){ value=(int)rand()%100; mat[i][j]=value; } } } void m_free(int *mat[], size_t columns){ for(size_t i=0; i<columns; i++){ free(mat[i]); } free(mat); } int main(void){ int **matrix; size_t rows, columns; printf("ROWS >"); scanf("%ld", &rows); printf("COLUMNS >"); scanf("%ld", &columns); matrix=m_malloc(rows, columns); m_fill(matrix, rows, columns); m_show(matrix, rows, columns); m_free(matrix, columns); return 0; } //matriz == matrix (in English) ??? Compilação e execução do código acima: zherkezhi@zherkezhi :~/Documents/C$ gcc -Wall matrix.c -o app zherkezhi@zherkezhi :~/Documents/C$ ./app ROWS >3 COLUMNS >3 [99] [68] [99] [16] [5] [50] [8] [62] [12] zherkezhi@zherkezhi :~/Documents/C$ ./app ROWS >4 COLUMNS >5 [95] [7] [34] [2] [68] [59] [19] [1] [37] [82] [25] [43] [16] [4] [50] [38] [46] [68] [4] [52] double free or corruption (out) Aborted (core dumped) zherkezhi@zherkezhi :~/Documents/C$ O que há de errado na função m_free? Em m_free eu liberei as colunas primeiro e depois as linhas. Não deveria funcionar dessa forma?
  6. diana

    Gestão de sensores de ruído

    Ola pessoal!! Preciso muito de ajuda com um exercício de um trabalho, eu vou por aqui o enunciado se alguém me puder ajudar era muito bom. ENUNCIADO:
  7. jonhhy

    Bell/sinais sonoros

    Boa tarde, tenho exercícios que pedem para utilizar a bell. Problema: escreva 1 programa em C que apresente 2 linhas com strings e no final de cada strings deve se ouvir o sinal sonoro. Mas pelo código e já experimentei acrescentar mais carateres de bips/bell : #include <stdio.h> main() { printf("Aqui vai um Apito \7\nAqui vai um Apito \a"); } e o resultado é o mesmo. Só se consegue uma vez ouvir o bell. é mesmo assim que é suposto funcionar?
  8. Eduardo18

    Converter a temperatura 38 Celsius para Kelvin

    Desenvolva um programa que faça conversões entre as duas escalas de temperaturas, Kelvin, Celsius com base em dois valores de entrada : i) a escala de conversão pretendida; e ii) a lista das temperaturas. As entradas 38, ’K’, significam que o utilizador pretende converter a temperatura 38 Celsius para Kelvin. •O utilizador deverá poder introduzir n temperaturas; •Deverá ser apresentada um quadro com todas as temperaturas inseridas e a respetiva conversão, indicando qual a escala de cada coluna apresentada; •Deverá ainda informar o utilizador acerca da média das temperaturas, assim como a maior e a menor delas, na escala original e de conversão; O meu código está a dar erros e nao estou conseguir descobri-los. Alguém consegue me ajudar por favor? #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ void tempC ( float tempK){ printf("\nInsira a temperatura em Celsius:"); scanf("%f", &tempC); tempK = (tempC + 273); printf("\nA temperatura em Kelvin =%f\n", tempC); } void tempK (float tempC){ printf("\nInsira a temperatura em kelvin:"); scanf("%f", &tempK); tempC = (tempK - 273); printf("\nA temperatura em Celsius em Kelvin:", tempK); } int main(int argc, char *argv[]) { //Declarar variáveis int opcao; float tempC, tempK; printf("==========CELSIUS <-> KELVIN==========\n"); printf("\n1-Celsius -> Kelvin\n2-kelvin -> Kelvin\n3-Sair\n\nOpcao:"); scanf("%d", &opcao); switch (opcao){ case 1: tempC(); break; case 2: tempK(); break; case 3: printf("\nFinalizando o programa...\n"); break; default: printf("\nErro! Opcao inexistente.\n"); break; } return 0; }
  9. Não consigo desenvolver mais deste ponto. Objectivo do programa é gerar números 0 - 1000 aleatoriamente e depois somar os números primos e depois fazer a média dos números primos. void geraNumeros (int * numeros, int tamanho){ int i; srand(time(NULL)); for(i = 0; i < tamanho; i++){ numeros[i]= rand()%1001; } } typedef enum {false, true} bool; bool primo (int numero){ bool primo = true; int i; if(numero == 0 || numero == 1){ primo = false; return primo; } for(i = 2; i < numero; i++){ if(numero %i == 0){ primo = false; break; } } return primo; } int main(int argc, char *argv[]) { int numeros[100]; int i; double soma, media; geraNumeros(numeros, 100); for(i = 0; i < 100; i++){ printf("%d\n", numeros[i]); } return 0; } Ele neste momento gera os numeros de 0 - 1000 aleatoriamente e acho que a função que fiz para os numeros primos deve funcionar; Falta agora implementar para que nesses numeros aleatorios ache os primos e imprima a soma deles e imprima outro com a media dos nrs primos tambem
  10. Eduardo18

    problema com programa dev c

    Boas, é o seguinte, quando vou para compilar tem a barra no fundo dos erros do compiltador ,recurso,depurador etc,mas quando compilo desparece essa barra e nao consigo ver quais sao os erros,mas aparece no codigo sublinado a vermelho. Alguem sabe como posso resolver este problema?
  11. Localhost

    Virar Strings ao contrário [Meu code]

    Olá pessoal, eu no outro dia abri aqui um tópico com a dúvida de como virar strings ao contrário, tive logo respostas, no entanto tive a estudar e a pensar em como transformar o código mais pequeno e utilizar o minimo de variaveis possivel e a verdade é que consegui chegar a um código bem engraçado #include <stdio.h> #include <conio.h> int main() { char string[1024]; int i, tamanho; printf("Digite uma string: "); gets(string); tamanho = strlen(string); printf("A string invertida -> "); for(i=tamanho-1; i>=0; i--) { printf("%c" ,string[i]); } getch(); return 0; } É este o código , quais as diferenças? Começa logo por usar uma string a menos e depois ao fazer o printf ele nao passa a string inteira como argumento mas sim caracter a caracter, vejam o code e digam-me se gostam, aproveito para agradecer ao miguel1234, ao baderous e ao pedrosorio que me ajudaram :smoke:
  12. Foi efetuado um questionário a um número indeterminado de estudantes numa universidade. A todos os estudantes foi solicitado o género, a idade e se está a gostar ou não do curso que está a frequentar. Implemente uma aplicação capaz de calcular e informar: •O número de estudantes entrevistados; •Percentagem de estudantes de género feminino e masculino; •Quantidade de estudantes de masculino com menos de 23 anos e não gostam do curso que estão a tirar. Tenho o meu codigo assim,mas acho que está mal,ao compilar insiro um numero ,depois salta para gosta curso e está sempre a pedir o mesmo. #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { /*Declarar varoáveis*/ int idade, intervistados=0, feminino=0, masculino=0, contador, naoGostaCurso=0; char genero [1]; char gostaCurso [1]; while(idade >= 0) { printf("Insira a idade:\n"); scanf("%d", &idade); printf("\nInsira o genero:\n"); scanf("%c", genero); printf("\nInsira gosta curso:\n"); scanf("%c", gostaCurso); if(intervistados=0){ intervistados++; } if(genero == masculino){ masculino++; if(genero == feminino){ feminino++; } } if( idade <23){ idade++; if(naoGostaCurso =0){ naoGostaCurso++; } } } return 0; }
  13. Eduardo18

    Capicua

    Um número capicua é um número que pode ser lido tanto da esquerda para a direita, como da direita para a esquerda. O maior número capicua resultante do produto entre dois algarismos de dois dígitos é 9009 = 91 x 99. Desenvolva uma aplicação que encontre o maior número capicua resultante do produto entre dois algarismos de três dígitos. Alguém me pode ajudar por favor? Estou a ter dificuldades a desenvolver o programa.😣
  14. Eduardo18

    Funções e procedimentos

    #include <stdio.h> #include<math.h> #include <stdlib.h> float peso(){ float peso; int contador; if(peso >= 50.0 && peso <= 80.0) contador++; } /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { /*Declarar variáveis*/ float peso = 0.0; int contador = 0; /*Recolha o peso*/ printf("Insira o peso: ou \'0\' ou \'-1\' para sair:\n"); scanf(" %f", &peso); while(peso > 0); printf("Há %d pesos compreendidos entre 50Kg e 80Kg!\n", contador); return 0; } (Desenvolva um programa que receba uma quantidade indefinida de informação sobre o peso de pessoas e que mostre na consola a quantidade de pessoas entre 50 ≤ peso < 80.Reflita acerca da melhor condição de paragem para este caso.) Reimplemente a questão 5 para que possa ser reutilizada noutros contextos, i.e. com outros intervalos de pesos ] i ; j[. Não estou a conseguir como faço os intervalos de peso i e j.( o codigo que mandei é do que está a negrito)
  15. flistergod

    Fork() e Semáforo

    Fiz um programa em C, que recebia múltiplos ficheiros que eram abertos pelo processo filho, e se desse erro na abertura, o pai incrementava esse erro e imprimia no fim. Agora preciso de criar múltiplos filhos, 1 para cada ficheiro, e usar semáforos para bloquear os filhos, pois estes têm de começar ao mesmo tempo. Código que tenho agora sem semáforos: #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<ctype.h> #include<sys/wait.h> int main(int argc, char*argv[]) { int i,contador=0,erros=0,status; FILE*fp; // Declarar o ficheiro int pidpai=getpid(); //pid do pai if(argc<2) { //proteção par ao numero de argumentos printf("argumentos insufecientes, ficheiro necessario\n"); exit(1); } for(i=1;i<=argc-1;i++) { contador++; //conta o numero de files if(pidpai==getpid())//fica com o pid do programa principal { if(fork()) { wait(&status);// o processo pai espera pelo filho que acabe e recebe um valor na variável status if(status==0) erros++; //sempre que o status for 0, é porque houve um erro na abertura de um file } // e é incrementado a variavel erros else { printf("\nPID=(%d) ficheiro: %s\n",getpid(),argv[i]); fp=fopen(argv[i],"r");// abre o ficheiro para leitura if(fp==NULL) return 0;//devolve 0 caso haja erro else return 1;//devolve 1 se abrir corretamente } } } printf("Ficheiros:%d Erros:%d\n",contador,erros);// mostra o numero de files e erros no ecrã }
  16. riqu3s

    Converter um ficheiro clq para txt em C

    Boas pessoal, sei que o tópico que vou criar pode não ser muito bem explícito mas vou tentar explicar da melhor maneira o que tenho em mente para fazer, e gostava que me pudessem ajudar. Eu tenho um ficheiro que é apresentado desta forma: c FILE: MANN_a9.clq.b // linhas começadas com c são apenas comentários c c By: Carlo Mannino c p edge 45 918 // indica que é um grafo com 45 vertices e 918 linhas e 2 1 // aresta que liga os vertices 1 e 2 e 3 1 // aresta que liga os vertices 1 e 3 e 3 2 // ... e 4 1 e 4 2 ... e 45 39 e 45 40 e 45 41 e 45 42 // ultima aresta que une 42 e 45 E depois tenho outro em txt deste genero 100 20 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 Em que aresta corresponde a 2 posições na matriz. Por exemplo, a aresta "e 2 1" vai marcar com '1' em p[2][6] e p[6][2]. A minha dúvida é como é que consigo ler o ficheiro clq e colocar no txt os 1's e 0's correspondentes a cada vertice. p.s. O numero 20 antes da matriz corresponde ao numero de vertices. Ou seja, no ficheiro clq em cima criaria uma matriz 45x45 O que tenho até agora é apenas isto: #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { FILE *f1, *f2; char filename[20], c; f1 = fopen("brock200_1.clq", "r"); if(f1 == NULL) { printf("Erro ao abrir o ficheiro"); exit(0); } printf("Introduza o nome do ficheiro para escrita: "); scanf("%s", filename); f2 = fopen(filename, "w"); if(f2 == NULL) { printf("Impossivel abrir o ficheiro"); exit(0); } c = fgetc(f1); while (c != EOF) { fputc(c, f2); c = fgetc(f1); } printf("Conteudo copiado para %s\n", filename); fclose(f1); fclose(f2); return 0; } Espero que me possam ajudar. Obrigado
  17. jtc-carr

    Valores para vetor

    Boa noite, Isto deve ser muito básico, mas não estou a conseguir preciso que os valores fiquem num vetor e não nas variáveis, já tentei de varias formas e não dá, depois preciso de somar o numero de números apresentados e retirar os repetidos ajudem-me //Listar numeros de 00000 até a int i, j, k, w, h, a = 1; for (i = 0; i <= a; i++) for (j = 0; j <= a; j++) for (k = 0; k <= a; k++) for (w = 0; w <= a; w++) for (h = 0; h <= a; h++) printf ("%d%d%d%d\t", i, j, k, w, h);
  18. Boa Tarde. Precisava da vossa ajuda para a criação de um programa onde se pretende gerir os serviços de uma empresa usando as operações de inserção, alteração, remoção e listagem dos mesmos. No programa depois de inserir um código o programa tem que dizer se esta livre ou ocupado (esta parte e onde tenho mais dificuldade em fazer), nao sei bem com fazer. Obrigado
  19. Convidado

    [Resolvido] Filtrar valores

    [Problema Resolvido] Desenvolva um programa que receba uma quantidade indefinida de informação sobre o peso de pessoas e que mostre na consola a quantidade de pessoas entre 50 ≤ peso < 80. Reflita acerca da melhor condição de paragem para este caso. #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { double peso; int contador = 0; printf("Insira um peso: "); scanf("%lf", &peso); while(peso > 0){ if(peso >= 50 && peso < 80){ contador++; } printf("Insira um peso: "); scanf("%lf", &peso); } printf("\nA quantidade de pessoas com peso superior ou igual a 50 e inferior a 80 sao: %d", contador); return 0; }
  20. Gustavo de Souza Cruz

    expected ';', ',' or ')' before '=' token

    Pessoal, boa tarde . Sou iniciante em linguagem C, e por isso estou com dificuldades pra conseguir identificar o erro. Me digam por favor o que está errado nesse código, e me digam como resolver!! CÓDIGO: #include <stdio.h> #include <stdlib.h> int i; int vetor1 [5]; int vetor2 [5]; int vetor3 [5]; float total = 0; void mediaVetores (int *vetor3, int tamanho, float total = 0){ for (int i = 0; i < tamanho; i++){ vetor3 = (vetor1 + vetor2); total = total + vetor3; } total = total/tamanho; printf ("\nA média dos dois vetores é: \n\n%.2f\n", total); } int main() { printf ("\n Digite os valores do primeiro vetor: \n\n"); for (int i = 0; i < 5; i++){ scanf ("%d", &vetor1); } printf ("\n Digite os valores do segundo vetor: \n\n"); for (int i = 0; i < 5; i++){ scanf ("%d", &vetor2); } mediaVetores (total); } ERROS QUE O REPL.IT INFORMA: exit status 1 main.c:11:58: error: expected ';', ',' or ')' before '=' token void mediaVetores (int *vetor3, int tamanho, float total = 0){ ^ main.c: In function 'main': main.c:43:5: warning: implicit declaration of function 'mediaVetores' [-Wimplicit-function-declaration] mediaVetores (total); ^~~~~~~~~~~~
  21. Dionatan Diego

    Conectar função ao menu

    Eai gnt, tudo bem com vc Estou fazendo um programa em C e não consigo conectar o Nó´s ao menu. Exemplo: cadastroAeroporto(); como fazer para que ele seja "linkado" no menu no case 2? #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct tNo { void *dado; struct tNo *proximo; } No; typedef struct tLista{ No *cabeca; No *ultimo; int tamanho; }Lista; Lista * cria() { Lista *l; l = malloc(sizeof(Lista)); if(l == NULL){ exit(1);} l->cabeca = malloc(sizeof(No)); if(!l->cabeca) { exit(1); } l->ultimo = l->cabeca; l->tamanho = 0; l->cabeca->proximo = NULL; return l; } void insere_inicio(Lista *l, void *dado) { No *novo; novo = malloc(sizeof(No)); if(novo == NULL) { exit(1); } novo->dado = dado; if (l->cabeca->proximo == NULL){ l->ultimo = novo; } novo->proximo = l->cabeca->proximo; l->cabeca->proximo = novo; l->tamanho += 1; } void * remove_inicio(Lista *l) { No *primeiro = l->cabeca->proximo; if(primeiro == NULL) { printf("Lista vazia.\n"); return NULL; } l->cabeca->proximo = primeiro->proximo; l->tamanho -= 1; void * dado = primeiro->dado; if(primeiro == l->ultimo){ l->ultimo = l->cabeca; } free(primeiro); return dado; } void destroi(Lista *f) { No *liberar; while(f->cabeca->proximo) { liberar = f->cabeca; free(liberar->dado); f->cabeca = f->cabeca->proximo; free(liberar); } free(f->cabeca); free(f); } void * remove_final(Lista *l){ No *ultimo = l->ultimo; void *dado; if(ultimo == l->cabeca) { printf("Lista vazia.\n"); return NULL; }else //Verifica se existe apenas um elemento if(ultimo == l->cabeca->proximo){ dado = ultimo->dado; l->cabeca->proximo = NULL; l->ultimo = l->cabeca; }else //Busca o penultimo elemento { No *penultimo = l->cabeca->proximo; while(penultimo != NULL){ if(penultimo->proximo == ultimo) break; penultimo = penultimo->proximo; } penultimo->proximo = NULL; l->ultimo = penultimo; l->tamanho -= 1; dado = ultimo->dado; } free(ultimo); return dado; } typedef struct tAeroporto{ char codigo[4]; char nome[100]; Lista * voos; } Aeroporto; typedef struct tVoo{ Aeroporto * destino; int codigo; } Voo; Aeroporto * buscaAeroporto(Lista *l,char codigo[4]){ No *n; n = l->cabeca->proximo; Aeroporto *a; while(n!=NULL){ a = (Aeroporto *) (n->dado); if( strcmp(a->codigo,codigo) == 0 ) return a; n = n->proximo; } return NULL; } No * buscaVoo(Lista *l,int codigo){ No *n; n = l->cabeca->proximo; Voo *v; while(n!=NULL){ v = (Voo *) (n->dado); if( v->codigo == codigo ) return n; n = n->proximo; } return NULL; } int remove_voo(Lista *l, int codigo){ No *remover = buscaVoo(l,codigo); if(remover == NULL){ return 0; }else if(l->ultimo == l->cabeca) { return 0; }else //Verifica se esta no inicio if(l->cabeca->proximo == remover){ remove_inicio(l); }else //Verifica se esta no final if(l->ultimo == remover){ remove_final(l); }else //Remove do meio da lista { No *anterior = l->cabeca->proximo; while(anterior != NULL){ if(anterior->proximo == remover) break; anterior = anterior->proximo; } anterior->proximo = remover->proximo; l->tamanho -= 1; free(remover); } return 1; } void imprimeAeroporto(Lista *l){ No *n; printf("\nMen\t\tDado\tProximo\n"); printf("%p\tcabeca\t%p\n",l->cabeca,l->cabeca->proximo); Aeroporto *a; for (n = l->cabeca->proximo; n!= NULL ; n = n->proximo){ a = (Aeroporto *)n->dado; printf("%p\t%s\t%p\n",n, a->codigo,n->proximo); } printf("%p\tultimo\t%p\n",l->ultimo,l->ultimo->proximo); printf("\n"); } void imprimeVoos(Lista *l){ No *n; printf("\nMen\t\tDado\tProximo\n"); printf("%p\tcabeca\t%p\n",l->cabeca,l->cabeca->proximo); Voo *a; for (n = l->cabeca->proximo; n!= NULL ; n = n->proximo){ a = (Voo *) n->dado; printf("%p\t%d\t%p\n",n, a->codigo,n->proximo); } printf("%p\tultimo\t%p\n",l->ultimo,l->ultimo->proximo); printf("\n"); } int CadastraAeroporto(Lista * l, char * Cidade, char * Codigo){ Aeroporto *a; a = malloc(sizeof(Aeroporto)); if(a == NULL) return 0; strcpy(a->codigo,Codigo); strcpy(a->nome,Cidade); a->voos = cria(); insere_inicio(l,(void *) a); return 1; } int CadastraVoo(Lista *l,int NumVoo, char * CodigoOrigem, char * CodigoDestino){ //Cadastra um Voo com um determinado número entre dois aeroportos identificados pelos seus Codigos. } int RemoveVoo(Lista *l,int NumVoo){ //Remove um Voo indicado pelo número. } // Função para exibir o menu de opções // Note que retorna um valor int, que é o // número digitado pelo usuário. int menu() { int opcao; printf("\n\n ==== MENU DE OPCOES ====\n"); printf("1 - Procura Voo \n"); printf("2 - Cadastra Aeroporto \n"); printf("3 - Imprime Voos \n"); printf("4 - Cadastra Voo \n"); printf("5 - Remove Voo \n"); printf("6 - Procura Voo \n"); printf("7 - Imprime Tudo \n"); printf("8 - SAIR \n"); printf("\nO que deseja fazer? "); scanf("%d", &opcao); return opcao; } int main(int argc, char * argv[]){ int opcao_selecionada; Lista *aeroportos; aeroportos = cria(); int cod; char codigoA[4]; char nomeA[100]; int codigoV; char origem[4]; char destino[4]; do{ opcao_selecionada = menu(); scanf("%d",&cod); switch(opcao_selecionada){ case 1: buscaVoo(); break; case 2: CadastraAeroporto(); break; break; case 3: imprimeVoos(); break; case 4: CadastraVoo(); break; case 5: RemoveVoo(); break; case 6: buscaVoo(); break; case 7: imprimeVoos(); break; case 8: break; } }while(cod != 0); imprimeAeroporto(aeroportos); //Imprimrir Voos //Aeroporto *a = buscaAeroporto(aeroportos,"CNF"); //imprimeVoos(a->voos); destroi(aeroportos); return 0; }
  22. anabelacostasantos

    sscanf

    sscanf(linha,"%f",&preco); Para que serve a função sscanf?
  23. PsySc0rpi0n

    [Resolvido] If e else

    Boas. Estava a escrever uma pequena função que contém 2 if's, encadeados, mas como cada if tem apenas uma linha eu nem sequer me preocupei em colocar as chavetas para agrupar código. Mas ao escrever a função cheguei a um ponto que não consegui decidir a que if pertencia o else que estava a escrever. Esse momento foi este: ///////Create Virtual Volume file int create_vt_file(char* p_filename){ FILE* filename = NULL; if(check_if_file_exists(p_filename) == ERR_FILE_NO_FILE) if(filename = fopen(p_filename, "w")) return ERR_NO_ERR_OK; else // <-------Este pertence ao 'if' interior ou vai pertencer ao exterior? }
  24. riqu3s

    Erro ("Segmentation Fault") em função getenv()

    Boas pessoal, estou a criar uma aplicação servidor-cliente para um trabalho e numa das metas é pedido para utilizar a função getenv(). #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include "medit-defaults.h" void dados() { int linhas, colunas, time_out, max_users; linhas=atoi(getenv("MEDIT_MAXLINES")); colunas=atoi(getenv("MEDIT_MAXCOLUMNS")); time_out=atoi(getenv("MEDIT_TIMEOUT")); max_users=atoi(getenv("MEDIT_MAXUSERS")); printf("Linhas: %d\tColunas: %d\t Time_Out:%d\t Max_Users:%d\n",linhas,colunas,time_out,max_users); } void comandos(char *comando) { int i; char *p[2]; *p=strtok(comando," "); if(strcmp(*p,"settings")==0) { dados(); } if(strcmp(*p,"load")==0) { for(i=1;i<2;i++) { *(p+i)=strtok(NULL," "); } printf("Valido.\n"); } if(strcmp(*p,"save")==0) { for(i=1;i<2;i++) { *(p+i)=strtok(NULL," "); } printf("Valido.\n"); } if(strcmp(*p,"free")==0) { for(i=1;i<2;i++) { *(p+i)=strtok(NULL," "); } printf("Valido.\n"); } if(strcmp(*p,"statistics")==0) { printf("Valido.\n"); } if(strcmp(*p,"users")==0) { printf("Valido.\n"); } if(strcmp(*p,"text")==0) { printf("Valido.\n"); } } int main(int argc, char* argv[]) { int n_linhas,n_col; int linhas,colunas; char comando[TAM]; printf("Insira o comando:\n"); scanf("%[^\n]",comando); if(strcmp(comando,"shutdown")==0) { printf("Servidor vai encerrar...\n"); exit(0); } else { comandos(comando); } return 0; } O programa está a funcionar corretamente e de acordo com aquilo que é necessário por agora, mas quando introduzo o comando "settings" aparece-me o erro 'Segmentation fault' e termina Já rodei o programa no windows e não me acontece este erro, gostaria de saber pq é que no linux isto acontece. Para o caso de ajudar melhor a entender o meu problema, deixo também o header file #ifndef MEDITDEFAULTS_H #define MEDITDEFAULTS_H #ifdef __cplusplus extern "C" { #endif #define TAM 50 #define TAM_USER 8 #define MEDIT_MAXCOLUMNS 45 //STRUCT PARA AS CARACTERISTICAS DO UTILIZADOR typedef struct Utilizador { char nome[TAM_USER]; int client_pid; }User; //STRUCT PARA ACOLHER O TEXTO EM EDICAO typedef struct texto_edicao { char linha[MEDIT_MAXCOLUMNS]; char username[TAM_USER]; int client_pid; }Edicao; #ifdef __cplusplus } #endif #endif /* MEDIT_DEFAULTS_H*/ Obrigado
  25. rasptty

    Cartão de Cidadão

    Boa Tarde Estou a tentar desenvolver uma aplicação para ler os dados do cartão de cidadão em Visual Foxpro, ou ler uma DLL ou ocx externa no VisualFox Pro, para ler o cartão de cidadão, será que alguém tem ou fez algo do género,
×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.