Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''c ''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Alguém me ajuda, estou tentando fazer um programa que eu preencho uma matriz 6x6 e quero que o programa lei-a a última linha da matriz ou seja linha 5 e percorra as linhas anteriores 4,3,2, e pare quando achar o primeiro número que se que se repete na linha 5, porém está com erro,segue o código que fiz: #include "stdio.h" #include "conio.h" #define L 6 #define C 6 int main(void) { int M[L][C]; int i,j,n,repete,k; printf("Digite ELEMENTO da:\n"); for(i=0;i<L;i++) { for(j=0;j<C;j++) { printf("linha %d, coluna %d da matriz: ",i,j); scanf("%d",&M[j]); } } for (k=0; k<6; k++) { n = M[5][k]; repete = 0; for (i = L; i >=0; i--) for (j=0; j<6; j++) { } if (repete ==1) printf("primeira dezena = %d",n); if (repete ==0) printf ("não tem dezena, ultimo lido %d", n); return 0; }
  2. #include <stdio.h> #include <stdlib.h> int main() { float num1, num2, resultado; int op = 0; int finalizar; finalizar = 0; do{ num1 = num2 = resultado = 0; printf("digite primeiro numero: "); scanf("%f\n", &num1); printf("digite o segundo: "); scanf("%f\n", &num2); printf("\t(1) somar\n"); printf("\t(2) subtrair\n"); printf("\t(3) multiplicar\n"); printf("\t(4) dividir\n"); scanf("%i", &op); if (op==1){ resultado = num1 + num2; printf("a soma e: %f\n", resultado); } else if(op==2){ resultado = num1 - num2; printf("a subtracao e: %f\n", resultado); } else if (op==3){ resultado = num1 * num2; printf("a multiplicacao e: %f\n", resultado); } else if (op==4){ resultado = num1 / num2; printf("a divisao e: %f\n", resultado); } printf("deseja finalizar? aperte qualquer tecla"); scanf("%i", &finalizar); system("cls"); } while(finalizar != 0); return 0; }
  3. boas tenho um projeto e tenho de inserir produtos mas não estou a conseguir meter os produtos no ficheiro, alguém pode dar dicas? void inserir_produtos (){ // algoritmo para inserir uma produto em uma categoria char nome_categoria[50]; char nome_categoriatxt[50]; char nome_categoriaics[50]; char nome_categoriacsv[50]; FILE *categoria; //abre a categoria pretendida pelo o utilizador e apresenta as opcoes para adicionar os produtos printf("\nDigite o nome da sua categoria: "); fflush(stdin); //limpar o buffer do teclado gets(nome_categoria); //obtem o nome que o utilizador escreveu strcpy(nome_categoriatxt,nome_categoria); strcat(&nome_categoriatxt, ".txt"); //acrescenta ao nome que o utilizador indicou o formato de ficheiro em que vai ser gravado, neste caso .txt strcpy(nome_categoriaics,nome_categoria); strcat(&nome_categoriaics, ".ics"); //acrescenta ao nome que o utilizador indicou o formato de ficheiro em que vai ser gravado, neste caso .ics strcpy(nome_categoriacsv,nome_categoria); strcat(&nome_categoriacsv, ".csv"); //acrescenta ao nome que o utilizador indicou o formato de ficheiro em que vai ser gravado, neste caso .csv //gravaçao no txt categoria = fopen(nome_categoriatxt, "a+"); // abre em modo de escrita if(categoria == NULL) { printf("Problemas na Criacao do arquivo\n"); return; } fprintf(categoria,"\nCarboidratos: %d\n",lista.carboidratos); fprintf(categoria,"\nVerduras: %d\n",lista.verduras); fprintf(categoria,"\nFrutas: %d\n",lista.frutas); fprintf(categoria,"\nCarnes: %d\n",lista.carnes); fprintf(categoria,"\nLaticinios: %d\n",lista.laticinios); fprintf(categoria,"\nLipidos: %d\n",lista.lipidos); //gravaçao em ics categoria = fopen(nome_categoriaics, "a+"); // abre em modo de escrita if(categoria == NULL) { printf("Problemas na Criacao do arquivo\n"); return; } fprintf(categoria,"\nCarboidratos: %d\n",lista.carboidratos); fprintf(categoria,"\nVerduras: %d\n",lista.verduras); fprintf(categoria,"\nFrutas: %d\n",lista.frutas); fprintf(categoria,"\nCarnes: %d\n",lista.carnes); fprintf(categoria,"\nLaticinios: %d\n",lista.laticinios); fprintf(categoria,"\nLipidos: %d\n",lista.lipidos); //gravaçao no csv categoria = fopen(nome_categoriacsv, "a+"); // abre em modo de escrita if(categoria == NULL) { printf("Problemas na Criacao do arquivo\n"); return; } fprintf(categoria,"\nCarboidratos: %d\n",lista.carboidratos); fprintf(categoria,"\nVerduras: %d\n",lista.verduras); fprintf(categoria,"\nFrutas: %d\n",lista.frutas); fprintf(categoria,"\nCarnes: %d\n",lista.carnes); fprintf(categoria,"\nLaticinios: %d\n",lista.laticinios); fprintf(categoria,"\nLipidos: %d\n",lista.lipidos); printf("\nProduto inserido com sucesso!\n\n"); fclose(categoria); }
  4. Bom dia pessoal, estou iniciando vetores em C, já fiz diversos exercícios para um melhor aprendizado, porém me deparei com um exercício que me falta experiência para sua resulução. Segue o exercício: "Em um campeonato de futebol existem x times e para cada tipo, existem y jogadores. Faça um programa que receba: o valor de x e de y, a idade, o peso e a altura de cada um dos jogadores, calcule e mostre: a) a quantidade de jogadores com idade inferior a 18 anos; b) a média das idades dos jogadores de cada time; c) a média das alturas de todos os jogadores do campeonato; d) a percentagem de jogadores com mais de 80 Kg entre todos os jogadores do campeonato; e) a média de idade dos jogadores com peso acima de 100 Kg." Parei na letra B, tirar a média de idade dos jogadores por de cada time, utilizei dois For para isso, meu problema é que a quantidade de times e jogadores são fornecidas pelo usuario, e não consigo tirar a média, tentei da seguinte maneira media = media + idade ; Porém como está dentro do for não traz o valor real... Conseguem me ajudar da resolução do mesmo? Segue parte do código feito até agora: #include <stdio.h> #include <stdlib.h> int main() { int qtdT=0,qtdJ=0,t,j,contidmenor=0; float mediaid[qtdJ],somaid[qtdJ],idade[qtdJ]; mediaid[qtdJ] = 0; printf("Digite a Qtd de Times: "); scanf("%d", &qtdT); printf("Digite a Qtd de Jogadores: "); scanf("%d", &qtdJ); for (t=1;t<=qtdT;t++) { printf("\n\t***Time%i***\n",t); for(j=1;j<=qtdJ;j++) { printf("Digite a idade do jogador%d: ", j); scanf("%f", &idade[j]); if (idade[j]<18) { contidmenor++; } mediaid[j] = (mediaid[j] + idade[j])/qtdJ; } } printf("\nJogadores com idade inferior a 18 anos: %d\n",contidmenor); for(j=1;j<=qtdT;j++) { printf("Media Idade Time%i: %.2f\n",j,mediaid[j]); } }
  5. Sou iniciante na linguagem C. Fiz um algoritmo que ordena uma matriz inteira unidimensional em ordem crescente. Alguém poderia me ajudar a deixar este código mais eficiente. #include<stdio.h> /*Quantidade de numeros*/ #define TAM 10 int main(){ int num[TAM], temp; register int i, t; /*Inicializar matriz*/ for(i=0;i<TAM;i++){ printf("\nInforme o %d numero: ", i+1); scanf("%d", &num); } /*Ordenar matriz em ordem crescente*/ for(i=0;i<TAM;i++){ for(t=0;t<TAM;t++){ if(num[t] > num[t+1]){ temp=num[t]; num[t]=num[t+1]; num[t+1]=temp; } } } for(i=0;i<TAM;i++){ printf("\n%d", num); } return 0; }
  6. Cálculo de Média Aritmética de 4 valores: Esta opção deverá ser implementada através do uso de uma função que receba como parâmetro 4 valores e calcule e escreva o resultado da média aritmética entre os mesmos. #include <iostream> using namespace std; float n1,n2,n3,n4,m; calcularmedia (float a,float b,float c,float d){ m=(n1+n2+n3+n4)/4; cout<<"Media: "<<m; } main () { cout<<"Informe os 4 valores: "; cin>>n1>>n2>>n3>>n4; calcularmedia (n1,n2,n3,n4); }
  7. Implemente um único programa em C que, quando executado, abra um menu com as seguintes e opções: 1) Cálculo de Média Aritmética de 4 valores: Esta opção deverá ser implementada através do uso de uma função que receba como parâmetro 4 valores e calcule e escreva o resultado da média aritmética entre os mesmos. 2) Cálculo do somatório dos elementos de um vetor de dimensão 10: Esta opção deverá ser implementada através do uso de uma função que receba como parâmetro um vetor com 10 valores já preenchidos e que calcule e retorne para o programa principal o resultado desta soma. O valor retornado deverá ser impresso na tela.
  8. #include <iostream> using namespace std; main () { float sal,q1,q2,q3; q1=0; q2=0; q3=0; do { cout<<"Informe os salários:"; cin>>sal; if (sal>1500){ q1=q1+1; } if (sal<150){ q2=q2+1; } else{ q3=q3+1; } } while (sal=0); cout<<"salários que são superiores a R$ 1.500,00: "; cout<<"salários que são inferiores a R$ 150,00: "; cout<<"salários que são inferiores a R$ 150,00: "; }
  9. Boa noite gente, eu estou com uma SUPER dúvida... Estou no primeiro período do curso de CC, iniciante em C e ainda não aprendi nada de grafos, árvore binária e etc... mas minha professora passou um TP pra gente que eu já passei dias tentando entender e fazer mas não consegui... Ele consiste em: "Implemente um algoritmo que seja capaz de encontrar o maior caminho entre dois nós inicio e fim de um grafo valorado, isto é, um grafo sem direção que possui um peso no arco para indicar a distância ou custo entre os nós. O algoritmo receberá como parâmetros os nós (inicio e fim), além de uma matriz custo de números inteiros que representa o grafo, denominada matriz de custo, e deverá retornar a maior distância entre os nós informados. A distância entre dois nós é o somatório das distâncias individuais entre os nós intermediários contidos no caminho que liga os nós inicio e fim. A matriz de custo é interpretada como segue. O algoritmo poderá manipular quaisquer outras estruturas de dados (variáveis, vetores, matrizes, registros, etc) que você julgar necessário para ajudar a resolver o problema, assim como usar outras funções auxiliares desde que as mesmas sejam também descritas. Para tal, declare a estrutura de dados e comente seu funcionamento. O caso base é atingido quando o algoritmo encontrar o nó fim informado na busca. O projeto do algoritmo também deverá levar em conta que cada nó só pode ser visitado uma vez durante a busca, para evitar ciclagem, devendo ter algum mecanismo de ‘memória’ que permita ao algoritmo verificar se o nó já foi visitado alguma vez." É basicamente o Algoritmo de Dijkstra ao contrário, porém tem um problema, dijkstra pega o próximo menor caminho, no caso do exercício ele precisa do maior somatório dos dois nós(inicio e fim), e não do próximo maior caminho... um exemplo que ocorreu no meu programa é se começar do 3 e quiser ir pro 4 ele vai pegar o próximo maior caminho que seria 3-2-4(valor 12+1) o que seria errado sendo que o maior caminho entre os dois laços seria 3-1-4(valor 9+22). Nesse caso eu pensei que teria que fazer um programa que iria ver todos os caminhos e todas as somatórias na força bruta, o que eu não consigo/não sei, gostaria de alguma ajuda, o que eu já fiz está aí: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #define inf int nos; int** add(){ //funcao adiciona recebe a matriz custo do usuario int origem, destino; do{ printf("Digite a quantidade de nós do grafo (min. 2): "); scanf("%d", &nos); }while(nos < 2); //printf("%d", nos); int **custo; //matriz custo de "nos" índices custo = (int **) malloc(nos*sizeof(int)); for (int i = 0; i < nos; i++){ custo[i] = (int *) malloc(nos* sizeof(int)); } for (int i = 0; i < nos; i++){ //zerando a matriz for (int j = 0; j < nos; j++){ custo[i][j] = 0; } } for (int i = 0; i < nos; i++){ //imprimindo so pra ver se deu certo for (int j = 0; j < nos; j++){ //não vai entrar no programa final printf("%2d ", custo[i][j]); } printf("\n"); } getchar(); getchar(); printf("Entre com as Arestas:\n"); //a partir daqui vai ler a origem, destino e peso do { do { printf("Origem da aresta (entre 1 e %d ou '0' para sair): ", nos); scanf("%d",&origem); }while (origem < 0 || origem > nos); if (origem) { do { printf("Destino da aresta (entre 1 e %d, menos %d): ", nos, origem); scanf("%d", &destino); }while (destino < 1 || destino > nos || destino == origem); do { printf("Custo (positivo) da aresta do vertice %d para o vertice %d: ", origem, destino); scanf("%d",&custo[origem-1][destino-1]); custo[destino-1][origem-1] = custo[origem-1][destino-1]; }while (custo[origem-1][destino-1] < 0); } }while (origem); return custo; } void imprime(int **custo){ for (int i = 0; i < nos; i++){ //ímprimindo matriz custo(não ENTRA NO PROG FINAL) for (int j = 0; j < nos; j++){ printf("%2d ", custo[i][j]); } printf("\n"); } getchar(); getchar(); } void procura(int **custo){ int vet[nos], inicio, fim; do{ printf("Digite o vertice de inicio e de fim desejados(entre 1 e %d): ", nos); scanf("%d %d", &inicio, &fim); }while(inicio < 1 || inicio > nos || fim < 1 || fim > nos || inicio == fim); for (int i = 0; i < nos; i++) vet[i] = 0; } int main (){ int op; int **custo; do{ system("clear"); printf("+----------NUMERO UM DO TP DE MD----------+\n" "0 - para sair\n1 - Inserir matriz custo\n2 - Inserir início e fim " "do grafo para calcular a maior distancia entre eles\n3 - Imprime matriz custo\nDigite a opcao: "); scanf("%d", &op); switch (op){ case 1: custo = add(); //aqui tá dando erro de segmentaçao break; case 2: procura(custo); break; case 3: imprime(custo); break; case 0: break; default: printf("Opcao invalida, pressione Enter para voltar ao menu... "); setbuf(stdin,NULL); getchar(); break; } }while (op != 0); return 0; } OBS1: O programa não está com o valor fixo do grafo então toda vez que for rodar precisa inserir todos os nós e valores. OBS2: O trabalho tem que ser em C. OBS3: Imagem do programa:
  10. Fiz em C um programa no Linux de multiplicação de matrizes de ordem 1000 A e B, (Ou seja, matrizes quadradas 1000x1000) que resulta em uma outra matriz C, só que agora eu tenho que adicionar threads e não sei como e nem aonde coloca-las. Eu preciso de 4 threads: 1 para calcular de 0 à 249; 2 para calcular de 250 à 499; 3 para calcular de 500 à 749; 4 para calcular de 750 à 999; Segue código abaixo: #include <time.h> #include <stdio.h> #include <stdlib.h> #include <pthread.h> int main(){ pthread_t thread_1; pthread_t thread_2; pthread_t thread_3; pthread_t thread_4; int i; int j; int linhas; int colunas; int ordem; long T1; long T2; float delta; printf("Digite a ordem das matrizes quadradas A e B: "); scanf("%d", &ordem); T1 = clock(); printf("\nAs matrizes quadradas A e B, são matrizes de ordem %d",ordem); ordem = ordem - 1; linhas = ordem; colunas = ordem; float A[linhas+1][colunas+1]; float B[linhas+1][colunas+1]; for(i = 0; i <= linhas; i++){ for(j = 0; j <= colunas; j++){ printf("\n\nEntre com o valor da matriz A[%d][%d]: ",i+1,j+1); scanf("%f", &A[i][j]); printf("\nEntre com o valor da matriz B[%d][%d]: ",i+1,j+1); scanf("%f", &B[i][j]); } } printf("\nA multiplicacao das matrizes A e B:\n\n"); for(i = 0; i <= linhas; i++) { for(j = 0; j <= colunas; j++) { float produto[linhas+1][colunas+1]; for(int AUX = 0; AUX <= ordem; AUX++) { produto[i][j] += A[i][AUX] * B[AUX][j]; } printf("%.2f ",produto[i][j]); } printf("\n"); } T2 = clock(); delta = (float)(T2-T1)/CLOCKS_PER_SEC; printf("\n\nTempo %.5f segundos",delta); return 0; } Desde já agradeço!
  11. Como posso alterar dados em um arquivo de texto usando a linguagem c ? Por exemplo : tenho um arquivo.txt com essas informações : sendo que cada numero está em uma linha 123 12 45 5 Como alterar especificamente, por exemplo, o numero 45 para 6666 ?
  12. alguém poderia me ajudar?estou tentando multiplicar duas matrizes, A e Be salvar o resultado em Co resultado não ta certo, to usando threadso queria uma opinião para saber se ta certo o que to fazendo, porque o que ta me intrigando é que os valores da linha da matriz C não altera #include<stdio.h> #include<stdlib.h> #include<pthread.h> pthread_t thread_1; pthread_t thread_2; pthread_t thread_3; int a[3][2] = {{1, 4}, {2, 5}, {3, 6}}; int b[2][3] = {{7, 8, 9}, {10, 11, 12}}; int c[3][3] = {{1, 2, 3}, {0, 0, 0}, {0, 0, 0}}; void* tarefa_1(void *p) { printf("\nThread1\n"); for (int col = 0; col < 3; col++) { // Multiplica a linha de A pela coluna de B. for (int i = 0; i < 2; i++) { c[1][col] += a[1][i] * b[i][col]; } printf("%i\t",c[1][col]); printf("\n"); } } void* tarefa_2(void *p) { printf("\nThread2\n"); for (int col = 0; col < 3; col++) { // Multiplica a linha de A pela coluna de B. for (int i = 0; i < 2; i++) { c[2][col] += a[2][i] * b[i][col]; } printf("%i\t",c[2][col]); printf("\n"); } } void* tarefa_3(void *p) { printf("\nThread3\n"); for (int col = 0; col < 3; col++) { // Multiplica a linha de A pela coluna de B. for (int i = 0; i < 2; i++) { c[3][col] += a[3][i] * b[i][col]; } printf("%i\t",c[3][col]); printf("\n"); } } int main() { printf("Inicio das Threads...\n"); // inicia as duas threads, passando como parametroa thread e a função que cada uma deve executar pthread_create(&thread_1, NULL, tarefa_1, NULL); pthread_create(&thread_2, NULL, tarefa_2, NULL); pthread_create(&thread_3, NULL, tarefa_3, NULL); // faz com que a thread principal espere a thread 1,2,3 acabarem; pthread_join(thread_1, NULL); pthread_join(thread_2, NULL); pthread_join(thread_3, NULL); printf("resultado da tabela 3\n"); for(int i = 0;i<3; i++){ for(int j= 0; j<3;j++){ printf("%i\t ",c[i][j]); } printf("\n"); } exit(0); }
  13. estou fazendo um trabalho da faculdade em que preciso criar um programa que calcule os numeros primos e os exiba na tela, só que após eu informar o numero limite, o programa não faz mais nada e nem responde a nenhum comando.Gostaria que pudessem me dizer porque ele não obedece após o cin>>limite;. segue o código: int limite,count,num,divisor; cout<<"Insira ate qual numero deseja mostrar os primos: "; cin>>limite; for(num=1;num<limite;num++) { count=0; for(int divisor=1;divisor<=num,divisor++;) { if(num%divisor==0 && num%1==0)count++; } if(count==2)cout<<" "<<num; obs: ele compila.
  14. E ae pessoal preciso de uma ajuda para implementar este programa: como posso criar arquivos com nomes dos candidatos escolhidos ao criar uma sessão e armazenar os votos para imprimir os resultados parciais. Uma comunidade sempre realiza reuniões administrativas para escolherem os líderes das secretarias que irão participar da administração do bairro durante o próximo ano. Eles precisam de um sistema para gerenciar a indicação e votação dos candidatos aos cargos. O sistema deverá permitir o início de uma nova seção de votação. Durante este início, o diretor define uma chave que será usada por todos eleitores que desejarem participar das votações.Após o início da seção, o sistema permite a definição do nome da secretaria e da lista de nomes indicados ao cargo. O sistema então submete os dados para um arquivo para que outras janelas no mesmo computador consigam votar. Após a submissão dos dados, o sistema ficará em uma tela exibindo os resultados parciais. Estes resultados são obtidos lendo o arquivo que estará registrando os votos.O sistema deverá permitir participar de uma seção já ativa. Para isto, será solicitada a chave da seção. Após a leitura da chave, o sistema tentará ler o arquivo responsável pela seção e obter o nome da secretaria que atualmente está em votação e a lista de nomes dos candidatos. O sistema permitirá que o usuário escolha um candidato e registrará seu voto no arquivo.
  15. Estou tentando mudar meu projeto para acender um led com uma palma, outro com duas e apagar os dois com tres, queria colocar um contador pra marcar as palmas mas não consigo implementar. Segue o codigo /* Projeto Integrador: Acender LEDs com palmas. */ int ledverde = 8; int ledvermelho = 9; int sensor = A0; void setup() { Serial.begin(9600); // Porta serial pra checar valor analogico pinMode(ledverde, OUTPUT); // Pino Digital Led Verde pinMode(ledvermelho, OUTPUT); // Pino Digital Led Vermelho } void loop() { int valor_analogico; // Valor analogico porta A0 static bool estado_do_led = false; // Estado atual do LED valor_analogico = analogRead(A0); int a; if (valor_analogico > 21) { // Valor limite de entrada do som if (estado_do_led) { estado_do_led = false; // Apaga o LED digitalWrite(ledverde, LOW); digitalWrite(ledvermelho, LOW); } else { estado_do_led = true; digitalWrite(ledverde,HIGH); // Acende o LED } delay(50); // Espera o fim da entrada de som } }
  16. Olá galera, esse é o meu primeiro post, sou novo em programação e neste fórum. Peço desculpas se a pergunta é muito básica para os usuários de nível avançado. Sou novo em programação e C é minha primeira linguagem na qual comecei a desenvolver. Tenho uma proposta de trabalho e gostaria de uma ajuda para resolver um problema quando estou executando. O programa está rodando beleza, mas durante a execução na entrada do primeiro struct o programa pede 4 entradas, ao invés de 3 (nome, matricula, e media). Poderiam me ajudar a tirar essa entrada extra? Desde já agradeço a atenção. #include<stdio.h> #include<string.h> struct aluno{//define tipo de dados da estrutura aluno char str1[100]; int matricula; int media; }; int main (void) { void receberCadastro(struct aluno lista[5]);//chamada da função receberCadastro de Alunos void printfCadastro(struct aluno lista[5]);//chamada da função printfCadastro de Alunos struct aluno listaCadastro[5]; receberCadastro(listaCadastro); printfCadastro(listaCadastro); system("pause"); return 0; } void receberCadastro (struct aluno lista [5]){//define entrada de dados para a estrutura int i; for (i = 0; i < 5; ++i) { printf("%i aluno\n nome\n matricula\n media\n ", i + 1); scanf("%s\n %i\n %i\n", &lista.str1, &lista.matricula, &lista.media); } } void printfCadastro(struct aluno lista[5]){//define a saída de dados da estrutura int i; for ( i = 0; i < 5; ++i){ printf("Aluno %i\n Nome = %s\n Matricula = %i\n Media = %i\n", i + 1, lista.str1, lista.matricula, lista.media); } }
  17. Estou com um trabalho de Estrutura de Dados para ser feito, mas estou tendo muita dificuldade em ler um arquivo CSV e separar as informações em variáveis. O problema deve ser iniciado desta maneira para que depois ainda seja adicionado mais clientes, excluir e tudo mais. Alguém poderia ajudar? O inicio do meu programa (a função do arquivo), está até agora desta maneira: #include <stdio.h> #include <stdlib.h> #include <string.h> char string [1000]; float total; FILE * pFile; char linha[200]; struct estrutura { int aux; char nome[40]; char endereco[40]; char cidade[40]; char pais[20]; char cep[10]; char nasc[12]; char telefone[14]; float total[20]; }; struct estrutura cliente[200]; int menu(); int menu2(); void arquivo(); void adicionar(); void alterar(); void excluir(); void exibir(); void pesquisar(); void listarnome(); void listarcodigo(); void listartotal(); int contar(); char *tmp; main() { system("cls"); menu(); //a função arquivo é uma opção do menu } //---------------------------------------------- //LEITURA DE ARQUIVO //---------------------------------------------- void arquivo() { pFile = fopen( "11_ProjetoPratico_ControleClientes_clientes.csv", "r" ) ; int i = 0; while (fgets(string, 1000, pFile) != NULL) { tmp = strtok(linha, ";"); cliente[i].aux = atoi(tmp); //atoi for int tmp = strtok(NULL, ";"); //use strcpy for char strcpy(cliente[i].nome,tmp); printf("%s", cliente[i].nome); tmp = strtok(NULL, ";"); strcpy(cliente[i].endereco,tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].cidade, tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].pais, tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].cep, tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].nasc, tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].telefone, tmp); printf("index i= %i ID: %i, %s, %s, %s, %s, %s, %s, %s, %f \n",i, cliente[i].aux , cliente[i].nome, cliente[i].endereco , cliente[i].cidade, cliente[i].pais, cliente[i].cep, cliente[i].nasc, cliente[i].telefone, cliente[i].total); i++; } //free(buf); fclose(pFile); } Obrigado desde já!
  18. Galera, estou aprendendo array e estrutura de repetição, o problema desse código é que ele só faz até 5 mesmo informando um numero maior, como eu resolveria esse problema? #include <stdio.h> #include <stdlib.h> //inteiro par ou impar int parouimpar (int); int main(int argc, char *argv[]) { int limite, i, numero, result; printf ("Digite a quantidade de numeros que deseja informar: "); scanf ("%i", &limite); for (i = 0; i<limite; i++){ printf ("Digite o numero : "); scanf ("%i", &numero); printf ("\n"); } for (i = 0; i<limite; i++){ result = parouimpar(numero); if (result==1){ printf ("O numero %i é par!\n ", numero); printf ("\n"); }else{ printf ("O numero %i é impar!\n", numero); printf ("\n"); } } system("pause"); return 0; } int parouimpar (int num){ if (num%2==0){ return 1; }else{ return 0; } }
  19. Olá pessoal, gostaria que alguém pudesse resolver esses dois problemas em linguagem C, por favor! 1- Faça um programa que preencha um vetor com 10 números reais, calcule e mostre a quantidade de números negativos e a soma dos números positivos desse vetor. 2- Faça um programa que receba 6 números inteiros e mostre: ´ • Os números pares digitados; ´ • A soma dos números pares digitados; ´ • Os números ímpares digitados; • A quantidade de números ímpares digitados;
  20. Comecei a estudar C a algumas semanas e estou participando como voluntário de um projeto onde recebi algumas listas para treinar o C. Duas questões, particularmente uma, me chamou atenção (a 5ª) onde eu tenho q fazer a série de cima só que agora os números são fatoriais. Acontece que, pelos meus cálculos de iniciante na área, consegui achar o caminho certo para resolver a série com qualquer 'N' mas quando eu teste a partir do N=4 o programa dá erro, até o N=3 ele resolve certinho. Tentei trocar float por double, porque podia ser muitos bits depois da virgula mas não vai, não sei se errei em algo ou se falta algo, podem tentar descobrir? Os dois códigos, respectivamente, são esses: #include <stdio.h> float serie(float x) { if(x<=0) return 0; if(x==1) return 1; else return ((1/x)+(serie(x-1))); } main() { float x; scanf("%f",&x); printf("%f",serie(x)); return 0; } #include<stdio.h> //E=1+(1/1!)+(1/2!)+(1/3!)+...+(1/n!) float fatorial(float x) { if(x<=0) return 0; if(x==1) return 1; else return x*fatorial(x-1); } float serie(float x) { if(x<=0) return 0; if(x==1) return 1; else return ((1/fatorial(x))+(serie(fatorial(x-1)))); } main() { float x; scanf("%f",&x); printf("%f",serie(x)+1); return 0; }
  21. Pessoal, tava fazendo um exercício de C, e o livro pede pra escrever um programa que diz quantas letras tem a maior frase. Eu escrevi : #include <stdio.h> int main() { char a; int i = 0 ; int maior = 0; printf ("entre com uma frase ai : "); scanf (" %c", &a); while ( a != '.') { while ( a!= ' ' && a!= '.') { if (a != ',' && a!= ' ') i++; scanf (" %c", &a); printf ("."); } if (i> maior) { maior = i; } i=0; } printf ("a maior palavra tem %d digitos", maior); return 0; } O problema é : O programa não entende que é pra sair do laço " while ( a!= ' ' && a!= '.') " quando tem espaço. Então se eu digitar a frase : eu sou Caio. , o programa retorna que a frase tem 9 letras. Alguém pode dar uma luz? Não to entendendo porque o programa não " pula" o espaço ... EDIT : esse printf ("." ) ; foi só pra fazer testes.
  22. Galera eu estou com dificuldades em criar um program que pede para comprar uma matriz e um vetor, eu consegui fazer a matriz mais não sei como comparar /* Faça um programa realize a leitura de uma matriz 5x8 do tpo char. Cada linha da matriz representa as respostas de um aluno em uma prova com 8 exercícios de múltpla escolha (‘A’, ‘B’, ‘C’, ‘D’ ou ‘E’, valide as entradas para que seja digitado apenas essas letras). Em seguida, realize a leitura de um vetor GABARITO, de 8 posições, que corresponde as respostas ofciais da prova. Ao fnal, preencha um vetor ACERTOS, de tamanho 5, que mostre a quantdade de acertos que cada aluno teve, comparando o vetor gabarito com a matriz de respostas dos alunos */ #include <stdio.h> #include <stdlib.h> #include <locale.h> main(){ setlocale(LC_ALL, "portuguese"); char notas[5][8]; int linha, coluna; char vetor[8] = {B, C, A, D, D, B, A, A }; printf("Digite a alternativa escolhida A, B, C, D, ou E\n\n"); for (linha=0; linha < 5;linha++){ for (coluna=0; coluna < 8; coluna++){ printf("Digite a alternativa %d° questão do %d° aluno: ", coluna+1, linha+1); scanf(" %c",&notas[linha][coluna]); } } for (linha=0; linha < 5;linha++){ for (coluna=0; coluna < 8; coluna++){ printf("%c ", notas[linha][coluna]); } printf("\n\N"); } printf("\n\n"); system("pause"); }
  23. Estou criando um algoritmo em C. Tenho um vetor char Vet[MAX];, onde MAX é um valor pré definido. Mas, pelo menos no meu PC, quando digito um número muito grande (Ex.: MAX = 3000000) o programa não roda. Ouvi dizer que tem como usar a função malloc pra contornar essa situação. Algum filho de Deus pode, por favor, escrever o trecho do algoritmo que usa a função mallc? Obrigado :-)
  24. (Problema em questao, Sistema de cinema, Linguagem> C, Compilador> DEV C++) Ola, estou com um trabalho de faculdade e preciso montar um sistema de cinema, ele precisa conter as seguintes funcionalidades: preciso vender ingressos: inteiro, meia (para estudantes e maiores de 65 anos) o cinema de segunda feira é fechado para mostrar apenas filmes educativos para crianças da escola publica e o ingresso é gratis nesse dia preciso fazer o controle das cadeiras escolhidas (já fiz o codigo referente a isso)(esta no anexo 2) preciso que imprima o ingresso na tela contendo o filme ,o horario da seção, a cadeira escolhida e qual o tipo do ingresso (inteira, meia ou gratuita). as duvidas são, como fazer para o sistema saber que dia da semana é, fazer a contagem de ingressos para assim que vender o limite pare (acredito que seja com um contador), em que parte eu insiro o controle de cadeiras e se tem alguma forma de simplificar o programa em questao. tem dois codigos, o primeiro é do cinema vendendo ingresso normal porem faltando algumas informaçoes que foram pedidas e o segundo é do controle das cadeiras. Primeiro codigo: sistema do cinema #include <stdio.h> #include <math.h> #include <stdlib.h> int main () { /* quant_blihetes= refere a quantidade de bilhetes que o cliente vai comprar caso_filmes= refere ao CASE para escolha dos filmes horario_sessao= refere a esolha do horario pelo cliente FP= refere a forma de pagamento que o cliente escolheu */ int quant_bilhetes, caso_filmes, horario_sessao=0, FP; printf("\t===============================================\n"); printf("\t===============================================\n"); printf("\t========== CINE PARA TODOS ====================\n"); printf("\t===============================================\n"); printf("\t===============================================\n\n"); printf("\t ESCOLHA UMA DAS OPCOES: \n"); printf("\t-----------------------------------------------\n"); printf("\t| FILMES EM CARTAZ |\n\n"); printf("\t| [1] Transformers |\n"); printf("\t| [2] Velozes e Furiosos |\n"); printf("\t| [3] Atividade Paranormal |\n"); printf("\t----------------------------------------------\n"); printf("Zero para sair:\n\n "); scanf("%i",&caso_filmes); switch (caso_filmes) { default: printf("Opcao invalida.\n"); case 1: printf("\t--------------------------------------\n"); printf("\t Cine 1: Transformers\n"); printf("\t Sessao [1]: 13:30 \n"); printf("\t Sessao [2]: 15:30 \n"); printf("\t Sessao [3]: 17:30 \n"); printf("\tComprar bilhete para qual sessao ? \n\n"); printf("\t--------------------------------------\n"); scanf("%i",&horario_sessao); if (horario_sessao==1) { printf("\tInforme a quantidade de bilhetes que deseja comprar:\n"); scanf("%i",&quant_bilhetes); if (quant_bilhetes<=20) { printf("\t---------------------------------------\n"); printf("\t FORMAS DE PAGAMENTO : : : \n\n"); printf("\t [1]Inteira: 8,00 R$ \n"); printf("\t [2]Meia: 4,00 R$ \n"); scanf("%i",&FP); printf("\t---------------------------------------\n"); if (FP==1) { printf("\tForma de Pagamento :: INTEIRA \n\n"); } else { printf("\tForma de Pagamento :: MEIA "); } printf("\tSessao escolhida 1: 13:30\n\n"); printf("\tSeu bilhete foi adiquirido com sucesso. \n"); printf("\tDivirta-se. Um bom filme pra voce.\n "); } else { printf("\tNao há mais bilhetes\n "); } } if (horario_sessao==2) { printf("\tInforme a quantidade de bilhetes que deseja comprar:\n"); scanf("%i",&quant_bilhetes); if (quant_bilhetes<=20) { printf("\t---------------------------------------\n"); printf("\t FORMAS DE PAGAMENTO : : : \n\n"); printf("\t [1]Inteira: 8,00 R$ \n"); printf("\t [2]Meia: 4,00 R$ \n"); scanf("%i",&FP); printf("\t---------------------------------------\n"); if (FP==1) { printf("\tForma de Pagamento :: INTEIRA \n\n"); } else { printf("\tForma de Pagamento :: MEIA \n\n"); } printf("\tSeu bilhete foi adiquirido com sucesso. \n"); printf("\tSessao escolhida 2: 15:30\n"); printf("\tDivirta-se. Um bom filme pra voce.\n\n "); } else { printf("\tNao há mais bilhetes\n "); } } if (horario_sessao==3) { printf("\tInforme a quantidade de bilhetes que deseja comprar:\n"); scanf("%i",&quant_bilhetes); if (quant_bilhetes<=20) { printf("\t---------------------------------------\n"); printf("\t FORMAS DE PAGAMENTO : : : \n\n"); printf("\t [1]Inteira: 8,00 R$ \n"); printf("\t [2]Meia: 4,00 R$ \n"); scanf("%i",&FP); printf("\t---------------------------------------\n"); if (FP==1) { printf("\tForma de Pagamento :: INTEIRA \n\n"); } else { printf("\tForma de Pagamento :: MEIA \n\n"); } printf("\tSeu bilhete foi adiquirido com sucesso. \n"); printf("\tSessao escolhida 3: 17:30\n"); printf("\tDivirta-se. Um bom filme pra voce.\n\n "); } else { printf("\tNao há mais bilhetes\n "); } } break; case 2: printf("\t--------------------------------------\n"); printf("\t Velozes e Furiosos \n"); printf("\t Sessao 1: 13:45 \n"); printf("\t Sessao 2: 16:15 \n"); printf("\t Sessao 3: 18:45 \n"); printf("\tComprar bilhete para qual sessao ? \n\n"); printf("\t--------------------------------------\n"); scanf("%i",&horario_sessao); if (horario_sessao==1) { printf ("\tInforme a quantidade de bilhetes que deseja comprar:\n"); scanf("%i",&quant_bilhetes); if (quant_bilhetes<=20) { printf("\t---------------------------------------\n"); printf("\t FORMAS DE PAGAMENTO : : : \n\n"); printf("\t [1]Inteira: 8,00 R$ \n"); printf("\t [2]Meia: 4,00 R$ \n"); scanf("%i",&FP); printf("\t---------------------------------------\n"); if (FP==1) { printf("\tForma de Pagamento :: INTEIRA \n\n"); } else { printf("\tForma de Pagamento :: MEIA \n\n"); } printf("\tSeu bilhete foi adiquirido com sucesso.\n"); printf("\tSessao escolhida 1: 13:45\n"); printf("\tDivirta-se. Um bom filme pra voce.\n\n "); } else { printf("\tNao há mais bilhetes\n "); } } if (horario_sessao==2) { printf("\tInforme a quantidade de bilhetes que deseja comprar:\n"); scanf("%i",&quant_bilhetes); if (quant_bilhetes<=20) { printf("\t---------------------------------------\n"); printf("\t FORMAS DE PAGAMENTO : : : \n\n"); printf("\t [1]Inteira: 8,00 R$ \n"); printf("\t [2]Meia: 4,00 R$ \n"); scanf("%i",&FP); printf("\t---------------------------------------\n"); printf("\tSeu bilhete foi adiquirido com sucesso. \n"); printf("\tSessao escolhida 2: 16:15\n"); printf("\tDivirta-se. Um bom filme pra voce.\n\n "); } else { printf("\tNao há mais bilhetes\n "); } } if (horario_sessao==3) { printf("\tInforme a quantidade de bilhetes que deseja comprar:\n"); scanf("%i",&quant_bilhetes); if (quant_bilhetes<=20) { printf("\t---------------------------------------\n"); printf("\t FORMAS DE PAGAMENTO : : : \n\n"); printf("\t [1]Inteira: 8,00 R$ \n"); printf("\t [2]Meia: 4,00 R$ \n"); scanf("%i",&FP); printf("\t---------------------------------------\n"); if (FP==1) { printf("\tForma de Pagamento :: INTEIRA \n\n"); } else { printf("\tForma de Pagamento :: MEIA \n\n"); } printf("\tSeu bilhete foi adiquirido com sucesso. \n"); printf("\tSessao escolhida 3: 18:45\n"); printf("\tDivirta-se. Um bom filme pra voce.\n\n "); } else { printf("\tNao há mais bilhetes\n "); } } break; case 3: printf("\t-----------------------------------------------\n"); printf("\t Cine 3: Atividade Paranormal \n"); printf("\t Sessao 1: 13:30 \n"); printf("\t Sessao 2: 15:30 \n"); printf("\t Sessao 3: 17:30 \n"); printf("\tComprar bilhete para qual sessao ? \n\n"); printf("\t-----------------------------------------------\n"); scanf("%i",&horario_sessao); if (horario_sessao==1) { printf ("\tInforme a quantidade de bilhetes que deseja comprar:\n"); scanf("%i",&quant_bilhetes); if (quant_bilhetes<=20) { printf("\t---------------------------------------\n"); printf("\t FORMAS DE PAGAMENTO : : : \n\n"); printf("\t [1]Inteira: 8,00 R$ \n"); printf("\t [2]Meia: 4,00 R$ \n"); scanf("%i",&FP); printf("\t---------------------------------------\n"); if (FP==1) { printf("\tForma de Pagamento :: INTEIRA \n\n"); } else { printf("\tForma de Pagamento :: MEIA \n\n"); } printf("\tSeu bilhete foi adiquirido com sucesso.\n"); printf("\tSessao escolhida 1: 13:30\n"); printf("\tDivirta-se. Um bom filme pra voce.\n\n "); } else { printf("\tNao há mais bilhetes\n "); } } if (horario_sessao==2) { printf("\tInforme a quantidade de bilhetes que deseja comprar:\n"); scanf("%i",&quant_bilhetes); if (quant_bilhetes<=20) { printf("\t---------------------------------------\n"); printf("\t FORMAS DE PAGAMENTO : : : \n\n"); printf("\t [1]Inteira: 8,00 R$ \n"); printf("\t [2]Meia: 4,00 R$ \n"); scanf("%i",&FP); printf("\t---------------------------------------\n"); if (FP==1) { printf("\tForma de Pagamento :: INTEIRA \n\n"); } else { printf("\tForma de Pagamento :: MEIA \n\n"); } printf("\tSeu bilhete foi adiquirido com sucesso. \n"); printf("\tSessao escolhida 2: 15:30\n"); printf("\tDivirta-se. Um bom filme pra voce.\n\n "); } else { printf("\tNao há mais bilhetes\n "); } } if (horario_sessao==3) { printf ("\tInforme a quantidade de bilhetes que deseja comprar:\n"); scanf("%i",&quant_bilhetes); if (quant_bilhetes<=20) { printf("\t---------------------------------------\n"); printf("\t FORMAS DE PAGAMENTO : : : \n\n"); printf("\t [1]Inteira: 8,00 R$ \n"); printf("\t [2]Meia: 4,00 R$ \n"); scanf("%i",&FP); printf("\t---------------------------------------\n"); if (FP==1) { printf("\tForma de Pagamento :: INTEIRA \n\n"); } else { printf("\tForma de Pagamento :: MEIA \n\n"); } printf("\tSeu bilhete foi adiquirido com sucesso.\n"); printf("\tSessao escolhida 3: 17:30\n"); printf("\tDivirta-se. Um bom filme pra voce.\n\n "); } else { printf("\tNao há mais bilhetes\n "); } } break; } system ("pause"); } Segundo codigo: controle das cadeiras #include <stdlib.h> #include <stdio.h> #include <math.h> int main (void) { /* obs= alt+124= | barra reta alt+92= \ barra ao contrario int= Caso_cadeira = switch case referente cadeira i= fileiras referente a posição das cadeiras j= colunas referente a posição das cadeiras lin= linha escolhida pelo cliente col= coluna escolhida pelo cliente condi= condição para esvaziar cadeiras char= ascii= referente ao caracter de numero 157 para mostrar as cadeiras vazias asciii= referente ao caracter de numero 158 para mostrar as cadeiras ocupadas poltrona[10] [10] = referente a matriz das cadeiras */ int Caso_cadeira, i, j, lin, col, condi, n, t, x, p; int poltrona[10] [10]; char ascii = 79; char asciii = 158; for(i=0 ; i<10; i++) { for(j=0 ; j<10 ; j++) { poltrona [i] [j]=0; } } do { printf("[1] - Escolher Cadeira\n"); printf("[2] - Ver disposicao das cadeiras\n"); printf("[3] - Cancelar cadeira\n\n"); printf("[4] - Escolha concluida\n\n"); scanf("%d", &Caso_cadeira); switch(Caso_cadeira) { case 1: //Escolher Cadeira printf("Fila: "); scanf("%d", &lin); printf("Coluna: "); scanf("%d",&col); if (lin<10 && col<10) { if (poltrona [lin] [col]==0) { poltrona [lin] [col]=1; } else { printf("******ATENCAO CADEIRA OCUPADA******\n\n"); } } else { printf("******CADEIRA INEXISTENTE******"); } printf("\n"); printf("-------------------------------------------------------------\n"); break; case 2: //ver caideiras n=0; printf("\tC\n\tO\n\tL\n\tU\n\tN\n\tA\n"); printf("LINHA"); printf("\t 0 1 2 3 4 5 6 7 8 9\n"); for(i=0 ; i<10; i++) { printf("\t"); n==1; printf("%d ",n); n++; for(j=0 ; j<10 ; j++) { if(poltrona[i] [j]==0) { printf("%c ",ascii); } else printf("%c ",asciii); } printf("\n"); } printf("\n"); printf("-------------------------------------------------------------\n"); break; case 3: //esvaziar cadeiras printf("O que deseja fazer?\n"); printf("[1] - Cancelar uma cadeira?\n"); printf("[2] - Cancelar todas as cadeiras?\n"); scanf("%d",&condi); if(condi == 1) { printf("\nFila: "); scanf("%d", &lin); printf("\nColuna: "); scanf("%d",&col); if(lin<10 && col<10) { poltrona [lin] [col]=0; } else { printf("******CADEIRA INEXISTENTE******\n"); } } else for(i=0 ; i<10; i++) { for(j=0 ; j<10 ; j++) { poltrona [i] [j]=0; } } printf("-------------------------------------------------------------\n"); break; default: Caso_cadeira=0; } }while(Caso_cadeira!=0); system("pause"); return(0); }
  25. Olá! Como sabemos, não existe um "valor padrão" para as variáveis declaradas em C (C++). Assim, não podemos prever qual será o valor ocupado por uma variável recém declarada. Enfim, vamos ao que interessa: Em alguns casos bem específicos, é necessário que as variáveis iniciem com um determinado valor. Eu, por exemplo, estou construindo um Programa com um vetor char T[2000000]. Quero que todos os espaços desse vetor iniciem com '', isto é: T[1] = ''; T[2] = ''; T[3] = ''; ... ; T[2000000] = ''; Poderíamos fazer usando um for(int k =1; k <= 2000000; k++){ T[k] = ''; } Minha dúvida é: Existe uma maneira mais rápida de fazer isso? Isto é, tem como "pedi" pro programa iniciar cada variável do vetor com o valor na momento em que o vetor é declarado? P.S: Sou iniciante em C. Desculpe-me se eu falei alguma "merda".
×
×
  • Criar Novo...