Jump to content

Search the Community

Showing results for tags 'c'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Web Development
    • HTML e CSS
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets and other environments
    • WordPress
    • Mobile
    • Agile
    • Desenvolvimento de Games
    • Banco de Dados
    • Design and UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • iMasters's pub

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 197 results

  1. Um cinema fez uma pesquisa através de um questionário sobre um filme e recebeu 20 respostas. Cada questionário contem a idade do espectador e sua opinião em relação ao filme, segundo as seguintes notas: 5 – ótimo, 4 – bom, 3 –regular, 2 –ruim, 1 –péssimo. Elabore um programa em C leia estes dados, calcule e imprima: a) A quantidade de respostas de cada tipo de nota dada ao filme; b) A média de idade das pessoas que responderam ruim; c) A percentagem de respostas péssimo; d) A maior idade de quem respondeu regular; e) Média de idade das pessoas que responderam ótimo ou bom ja tentei de varias maneiras e nao consegui resolver!!
  2. Olá, estou tentando fazer um programa para o problema do caixeiro comprador exato (TPP ou PCCo) e, depois de fazer algumas pesquisas, eu encontrei o código a baixo e gostaria conseguir compilar e executar para comparar com a minha implementação. O problema é que não consigo compilar o código. Fica dando, esses erros(Também segue na foto): " /tmp/ccvk9cDb.o: Na função "work()": main.cpp:(.text+0x104e): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o main.cpp:(.text+0x106e): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o main.cpp:(.text+0x1152): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o main.cpp:(.text+0x12b4): relocação truncada para caber: R_X86_64_PC32 contra símbolo não definido "pop" na seção .bss em /tmp/ccvk9cDb.o /tmp/ccvk9cDb.o: Na função "__static_initialization_and_destruction_0(int, int)": main.cpp:(.text+0x1526): relocação truncada para caber: R_X86_64_PC32 contra ".bss" main.cpp:(.text+0x1539): relocação truncada para caber: R_X86_64_PC32 contra ".bss" collect2: error: ld returned 1 exit status " Esse é o código: ////////////////////////////////////////////////////////////////////////////////////////////// #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #include <queue> #include <map> #include <set> #include <vector> #include <string> #include <stack> #include <bitset> #include"instance_access.h" #define INF 0x3f3f3f3f #define eps 1e-8 #define FI first #define SE second using namespace std; typedef long long ll; const int MaxM = 25, MaxK = 700; int M, K, Q; int G[MaxM + 5][MaxM + 5]; int P[MaxM + 5][MaxK + 5]; int C[MaxM + 5]; void read(char *p,int m,int k,int d,int h) { //scanf("%d%d", &M, &K); int* _graph; int* _price; //_graph->printMatrix(); //cout<<endl; //_price->printMatrix(); //cout<<endl; get_instance_largek(_graph,_price,m,k,p); //cout<<endl; for(int i=0;i<m;++i) { for(int j=0;j<m;++j) { int temp=_graph[i*m+j]; //cout<<temp<<" "; *(G + j)=temp; } //cout<<endl; } //cout<<endl; for(int i=0;i<m;++i) { for(int j=0;j<k;++j) { int temp=_price[i*k+j]; // cout<<temp<<" "; *(P + j)=temp; } // cout<<endl; } M=m; K=k; Q=h; for(int i=1;i<m;++i) { C=d; } } inline void ck(int &x, int v) { if(x > v) x = v; } int head[MaxM + MaxK + 10]; struct Edge { int nxt, to, cow, cost; Edge() {} Edge(int nxt, int to, int cow, int cost) : nxt(nxt), to(to), cow(cow), cost(cost) {} } ed[100000]; int ecnt, mx_flow, mi_cost; void init() { mx_flow = mi_cost = ecnt = 0; memset(head, -1, sizeof(head)); } void addedge(int u, int v, int cow, int cost) { ed[ecnt] = Edge(head, v, cow, cost); head = ecnt ++; ed[ecnt] = Edge(head[v], u, 0, -cost); head[v] = ecnt ++; } queue <int> q; int dis[MaxK + MaxM + 10], pre[MaxK + MaxM + 10], inq[MaxK + MaxM + 10]; bool Spfa(int S, int T) { memset(dis, 0x3f, sizeof(dis)); dis = 0; q.push(S); while(!q.empty()) { int u = q.front(); q.pop(); inq = 0; for(int e = head; ~e; e = ed[e].nxt) { if(!ed[e].cow) continue; int v = ed[e].to; if(dis[v] > dis + ed[e].cost) { dis[v] = dis + ed[e].cost; pre[v] = e; if(!inq[v]) { inq[v] = 1; q.push(v); } } } } return dis[T] != INF; } void End(int S, int T) { int flow = INF; for(int u = T; u != S; u = ed[pre ^ 1].to) { flow = min(flow, ed[pre].cow); } for(int u = T; u != S; u = ed[pre ^ 1].to) { ed[pre].cow -= flow; ed[pre ^ 1].cow += flow; mi_cost += flow * ed[pre].cost; } mx_flow += flow; } int minPrice(int s) { init(); int src = 0, dec = M + K+1; for(int i = 1; i < M; ++ i) { if(~s >> i & 1) continue; addedge(src, i, C, 0); for(int k = 0; k < K; ++ k) { if(P[k] == 0) continue; addedge(i, M + k+1, 1, P[k]); } } for(int i = 1; i <= K; ++ i) { addedge(M + i, dec, 1, 0); } while(Spfa(src, dec)) End(src, dec); if(mx_flow != K) return -1; return mi_cost; } int dp[MaxM + 1][1 << MaxM]; int pop[1 << MaxM]; void work() { int U = 1 << M; for(int i = 1; i < U; ++ i) { pop = pop[i >> 1] + (i & 1); } for(int i = 1; i < M; ++ i) { for(int j = 0; j < U; ++ j) { dp[j] = INF; } } for(int i = 1; i < M; ++ i) { dp[1 << i] = G[0]; } for(int s = 1; s < U; ++ s) { if(pop >= Q) continue; for(int i = 1; i < M; ++ i) { if(dp == INF) continue; for(int j = 1; j < M; ++ j) { if(s >> j & 1) continue; ck(dp[j][s | (1 << j)], dp + G[j]); } } } int ans = INF; for(int i = 0; i < U; ++ i) { if(pop > Q) continue; int f = minPrice(i); if(f == -1) continue; for(int j = 1; j < M; ++ j) { if(dp[j] == INF) continue; ck(ans, f + dp[j] + G[j][0]); } } printf("%d", ans); } int main(int argc,char *argv[]) { //arguments order: filename m k u q if(argc !=6) { cout<<"wrong number of arguments"; return 1; } int m,k,u,q; m=atoi(argv[2]); k=atoi(argv[3]); u=atoi(argv[4]); q=atoi(argv[5]); read(argv[1],m,k,u,q); time_t begin,end; cout<<"optimal object value: "; begin=clock(); work(); end=clock(); cout<<endl; cout<<"time: "; cout<<double(end-begin)/CLOCKS_PER_SEC<<endl; return 0; } ////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////"instance_acess.h"////////////////////////////////////////////////////////// #ifndef INSTANCE_ACCESS_H_INCLUDED #define INSTANCE_ACCESS_H_INCLUDED #include <string> #include <strstream> #include<iostream> #include<fstream> #include<string.h> using namespace std; int get_instance_largek(int *&graph, int *&product_distribution, int m,int k,char *p) { graph=new int[m*m]; product_distribution=new int[m*k]; for(int i=0;i<m;++i) { for(int j=0;j<m;++j) { graph[i*m+j]=0; } } for(int i=0;i<m;++i) { for(int j=0;j<k;++j) { product_distribution[i*k+j]=0; } } ifstream fin; fin.open(p); if(fin.is_open()) { string s; while(fin>>s) { if(s=="NODE_COORD_SECTION") { fin>>s; int num; double x[m]; double y[m]; for(int i=0;i<m;++i) { fin>>num; fin>>x; fin>>y; } for(int i=0;i<m;i++) { for(int j=0;j<m;j++) { double xd=x-x[j]; double yd=y-y[j]; int d=(int)(sqrt(xd*xd+yd*yd)+0.5); graph[i*m+j]=d; } } } if(s=="OFFER_SECTION") { fin>>s; int id; int num=0; for(int i=0;i<m;++i) { fin>>id; fin>>num; int product_id; int cost; int dem; for(int j=0;j<num;++j) { fin>>product_id; fin>>cost; product_distribution[i*k+product_id-1]=cost; fin>>dem; } } } } return 1; }else{ return 0; } } #endif // INSTANCE_ACCESS_H_INCLUDED //////////////////////////////////////////////////////////////////////////////////////////////
  3. Seguinte, estou tentando criar um jogo da velha mas e está causando um erro ao compilar, aparece um erro dizendo->|error: cannot convert 'char (*)[3]' to 'char*' for argument '1' to 'bool verificaX(char*)', alguem sabe como posso resolver ???! (Aparentemente não ta dando pra armazenar o endereço do vetor casas dentro do ponteiro das funções... Obs: Aceito sugestões para melhorar meu código, grato.(Ignorem as bibliotecas inúteis) #include <iostream> #include <stdio.h> //Para função gets #include <stdlib.h> //Para função malloc #include <math.h> #include <iomanip> //JOGO DA VELHA using namespace std; int jogadas=0; bool verificaX(char *vetor); bool verificaO(char *vetor); int main(){ char casas[3][3]={' ',' ',' ',' ',' ',' ',' ',' ',' '}; int l=0,c=0; while(jogadas<9){ cout << "\t\t" << casas[0][0] << " | " << casas[0][1] << " | " << casas[0][2] << "\n"; cout << "\t\t_________\n"; cout << "\t\t" << casas[1][0] << " | " << casas[1][1] << " | " << casas[1][2] << "\n"; cout << "\t\t_________\n"; cout << "\t\t" << casas[2][0] << " | " << casas[2][1] << " | " << casas[2][2] << "\n\n\n"; cout << "Digite uma linha: "; cin >> l; cout << "Digite uma coluna: "; cin >> c; while(l<=0 || c <=0 || l>3 || c>3){ system("cls"); cout << "Linha ou Coluna não existe!"; cout << "Digite uma linha: "; cin >> l; cout << "Digite uma coluna: "; cin >> c; } system("cls"); if(jogadas%2==0){ casas[--l][--c]='X'; }else{ casas[--l][--c]='O'; } jogadas++; verificaX(casas); verificaO(casas); } if(verificaX){ cout << "Jogador X ganhou!"; }else if(verificaO){ cout << "Jogador O ganhou!"; }else{ cout << "Empate!"; } return(0); } bool verificaX(char *vetor){ int l,c; for(l=0;l<3;l++){ if(vetor[l][0] && vetor[l][1] && vetor[l][2] == 'X'){ jogadas=10; return true; }else if(vetor[0][c] && vetor[1][c] && vetor[2][c] == 'X'){ jogadas=10; return true; } c++; } return 0; } bool verificaO(char *vetor){ int l,c; for(l=0;l<3;l++){ if(*vetor[l][0]=='X' && *vetor[l][1]=='X' && *vetor[l][2] == 'X'){ jogadas=10; return o=true; }else if(*vetor[0][c]=='X' && *vetor[1][c]=='X' && *vetor[2][c] == 'X'){ jogadas=10; return o=true; } c++; } return 0; }
  4. Bom, no meu código ao acessar um vetor de struct declarado globalmente e inicializado no main eu tento passar valores para ele e tento imprimir e nem chega a esse ponto. Antes de eu fazer isso fiz um vetor de struct no int main, inicializei lá, passei para a função, mas ao imprimir não mostrava nada. Cheguei ao ponto de pensar em retornar a struct para a struct do int main, mas como são as mesmas fiquei parado e peço a ajuda de vocês se poderem apontar erros ou qualquer coisa no código a baixo: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define tamanho 3 typedef struct nomes vetnome; typedef struct letras letra; struct nomes{ char nome[30]; vetnome *pont; }; struct letras{ char L[4]; vetnome *pontpnome; }; void inserir (vetnome **nom); int chave(char nome2[30]); void imprimir(); letra tabEsp[tamanho]; int main() { int qtd=1,i=0,contd=0; int chaveres=0; char nome[30], resposta[30]; for(contd=0;contd<3;contd++) { strcpy(tabEsp[contd].L,"NULL"); } while(qtd<4) { printf("Insira 3 letras diferentes, você guardará nomes com essas iniciais depois desse processo: "); vetnome *nom=(vetnome *)malloc(sizeof(vetnome)); inserir(&nom); system("pause"); system("cls"); qtd++; } puts("Aqui você irá colocar nomes dentro das 3 listas criadas! :)"); while((strcmp(strupr(resposta),"NAO"))!=0) { vetnome *nom=(vetnome *)malloc(sizeof(vetnome)); inserir(&nom); printf("Você quer continuar?[Sim/Nao]"); scanf("%s", &resposta); system("pause"); system("cls"); } imprimir(); return 0; } int chave(char nome2[30]) { unsigned int resultado= (int)nome2[0]%tamanho; if(resultado<0) resultado=-resultado; return resultado; } void inserir (vetnome **nom) { char nome[30], nome2[30]; puts("Digite um nome: "); scanf("%s", &nome); strcpy(nome2,strupr(nome)); int chaveres=chave(nome2); vetnome *aux2; aux2=nom; if(chaveres==1) { if(strcmp(tabEsp[chaveres].L,"NULL")==0) { strncpy(tabEsp[chaveres].L,nome,1); aux2->pont=NULL; tabEsp[chaveres].pontpnome=aux2; return; } else if((strcmp(tabEsp[chaveres].L,"NULL")>0) || (strcmp(tabEsp[chaveres].L,"NULL")<0)) { aux2=tabEsp[chaveres].pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strncpy(name->nome,nome,30); aux2=name; aux2->pont=NULL; return; } } if(chaveres==2) { if (strcmp(tabEsp[chaveres].L,"NULL")==0) { strncpy(tabEsp[chaveres].L,nome,1); aux2->pont=NULL; tabEsp[chaveres].pontpnome=aux2; return; } else if((strcmp(tabEsp[chaveres].L,"NULL")>0) || (strcmp(tabEsp[chaveres].L,"NULL")<0)) { aux2=tabEsp[chaveres].pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strncpy(name->nome,nome,30); aux2=name; aux2->pont=NULL; return; } } if(chaveres==3) { if (strcmp(tabEsp[chaveres].L,"NULL")==0) { strncpy(tabEsp[chaveres].L,nome,1); aux2->pont=NULL; tabEsp[chaveres].pontpnome=aux2; return; } else if((strcmp(tabEsp[chaveres].L,"NULL")>0) || (strcmp(tabEsp[chaveres].L,"NULL")<0)) { aux2=tabEsp[chaveres].pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strncpy(name->nome,nome,30); aux2=name; aux2->pont=NULL; return; } } if (chaveres>3) { puts("Espaço não reservado!"); } } void imprimir() { int num=0,qtd=0; puts("Digite qual opção deseja: \n"); puts("[ 0 ] TUDO \n"); puts("[ 1 ] APENAS UMA DAS LISTAS DE LETRAS \n"); puts("[ 2 ] Sair \n"); scanf(" %d", &num); if(num==0) { vetnome *aux2; for(qtd=0;qtd<4;qtd++) { printf("Primeira Letra -> %c \n", tabEsp[qtd].L[0]); aux2=tabEsp[qtd].pontpnome; while(aux2!=NULL) { printf("Nome -> ", aux2->nome,"\n"); aux2=aux2->pont; } } } system("pause"); }
  5. David Samu

    Converter Javascript em C

    let total_entradas = 3//ai virar total de colunas let total_linhas = 0 let tabela = [] for(let coluna=total_entradas; coluna>0; coluna-- ) { let repeticao = 1 for(let x=1; x<=coluna; x++) { repeticao = (2 * repeticao) } if( total_linhas === 0 ) { total_linhas = repeticao } if(repeticao != 1) { repeticao = (repeticao / 2) } let valores = [] let vdd = 1 let lastBoo = 'v' for( let linha=0; linha < total_linhas; linha++ ) { if( vdd <= repeticao ) { val = lastBoo } else { if( lastBoo == 'v' ) { lastBoo = 'f' } else { lastBoo = 'v' } val = lastBoo vdd=1 } vdd++ valores.push(val) } tabela[ (coluna - 1) ] = valores } let countCol = 1 for(let coluna=tabela.length - 1; coluna>=0; coluna--) { console.log("Coluna ", countCol++) for(let linha = 0; linha < tabela[coluna].length; linha ++) { console.log( tabela[coluna][linha] ) } }
  6. Gui2000

    Código de agenda em C[Resolvido]

    O código é para a colocar 3 letras a partir de 3 nomes diferentes. Ou seja:A-> AdrianoB-> BrunoC->CarolCom isso eu criaria uma agenda.Problema1-Ao eu compara o que tem dentro da letra que como não tem nada seria NULL então ele nem entra no casso que ele é igual a NULL2- Ao receber a posição da outra struct em: aux2=aux->pontpnome, ou seja ele recebe de dentro da struct letras a posição da próxima struct que é de nomes. Ao debuggar ele insinua erro ai também.Caso vejam mais um erro por favor me comuniquem. #include <stdio.h> #include <stdlib.h> #include <string.h> #define tamanho 3 typedef struct nomes vetnome; typedef struct letras letra; struct nomes{ char nome[30]; vetnome *pont; }; struct letras{ char L[4]; vetnome *pontpnome; }; void inserir (letra **let, letra tabEsp[tamanho], vetnome **ini,int qtd); int chave(char nome[30]); int main() { int qtd=0,i=0; char nome[30], resposta[30]; letra tabEsp[tamanho]; for(i=1;i<4;i++) { strcpy(tabEsp.L,"NULL"); } printf("Insira 3 nomes diferentes primeiramente: "); while(qtd<4) { letra *let=(letra *)malloc(sizeof(letra)); vetnome *ini=(vetnome *)malloc(sizeof(vetnome)); let->pontpnome=NULL; ini->pont=NULL; inserir(&let, tabEsp, &ini, qtd); system("pause"); system("cls"); qtd++; } puts("Aqui você irá colocar nomes dentro das 3 listas criadas! :)"); while(resposta!="NAO") { printf("Digite um nome: "); scanf("%s", &nome); letra *let=(letra *)malloc(sizeof(letra)); vetnome *ini=(vetnome *)malloc(sizeof(vetnome)); let=NULL; ini=NULL; inserir(&let, tabEsp, &ini, qtd); printf("Você quer continuar?[Sim/Nao]"); scanf("%s", &resposta); system("pause"); system("cls"); } return 0; } int chave(char nome[30]) { unsigned int resultado= (int)nome[0]%tamanho; if(resultado<0) resultado=-resultado; return resultado; } void inserir (letra **Let, letra tabEsp[tamanho], vetnome **Ini, int qtd) { char nome[30]; puts("Digite um nome: "); scanf("%s", &nome); int chaveres=chave(nome); vetnome *aux2; aux2=Ini; letra *aux; aux=Let; if(chaveres==1) { if(tabEsp[chaveres].L=="NULL") { letra *novo= (letra*) malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome); aux=novo; aux2=name; aux->pontpnome=&aux2; aux2->pont=NULL; return ; } else if(tabEsp[chaveres].L!="NULL") { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome); aux2->pont=name; name->pont=NULL; return; } } if(chaveres==2) { if (tabEsp[chaveres].L==NULL) { letra *novo=(letra *)malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome[30]); aux=novo; aux2=name; aux->pontpnome=&aux2; return; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome[30]); aux2->pont=&name; name->pont=NULL; return; } } if(chaveres==3) { if (tabEsp[chaveres].L==NULL) { letra *novo=(letra *)malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome[30]); aux=novo; aux2=name; aux->pontpnome=&aux2; return; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome); aux2->pont=name; name->pont=NULL; return; } } if (chaveres>3) { puts("Espaço não reservado!"); } } CÓDIGO RESOLVIDO #include <stdio.h> #include <stdlib.h> #include <string.h> #define tamanho 3 typedef struct nomes vetnome; typedef struct letras letra; struct nomes{ char nome[30]; vetnome *pont; }; struct letras{ char L[4]; vetnome *pontpnome; }; void inserir (letra **let, letra tabEsp[tamanho], vetnome **ini,int qtd); int chave(char nome[30]); int main() { int qtd=1,i=0; char nome[30], resposta[30]; letra tabEsp[tamanho]={NULL,NULL,NULL}; printf("Insira 3 letras diferentes, você guardará nomes com essas iniciais depois desse processo: "); while(qtd<4) { letra *let=(letra *)malloc(sizeof(letra)); vetnome *ini=(vetnome *)malloc(sizeof(vetnome)); let->pontpnome=NULL; ini->pont=NULL; inserir(&let, tabEsp, &ini, qtd); system("pause"); system("cls"); qtd++; } puts("Aqui você irá colocar nomes dentro das 3 listas criadas! :)"); while(resposta!="NAO") { letra *let=(letra *)malloc(sizeof(letra)); vetnome *ini=(vetnome *)malloc(sizeof(vetnome)); let=NULL; ini=NULL; inserir(&let, tabEsp, &ini, qtd); printf("Você quer continuar?[Sim/Nao]"); scanf("%s", &resposta); system("pause"); system("cls"); } return 0; } int chave(char nome[30]) { unsigned int resultado= (int)nome[0]%tamanho; if(resultado<0) resultado=-resultado; return resultado; } void inserir (letra **Let, letra tabEsp[tamanho], vetnome **Ini, int qtd) { char nome[30]; puts("Digite um nome: "); scanf("%s", &nome); int chaveres=chave(nome); vetnome *aux2; aux2=Ini; letra *aux; aux=Let; if(chaveres==1) { if(tabEsp[chaveres].L==NULL) { letra *novo= (letra*) malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome); aux=novo; aux2=name; aux->pontpnome=&aux2; aux2->pont=NULL; return ; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome); aux2=name; aux2->pont=NULL; return; } } if(chaveres==2) { if (tabEsp[chaveres].L==NULL) { letra *novo=(letra *)malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome[30]); aux=novo; aux2=name; aux->pontpnome=&aux2; return; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome[30]); aux2->pont=&name; name->pont=NULL; return; } } if(chaveres==3) { if (tabEsp[chaveres].L==NULL) { letra *novo=(letra *)malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome[30]); aux=novo; aux2=name; aux->pontpnome=&aux2; return; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome); aux2->pont=name; name->pont=NULL; return; } } if (chaveres>3) { puts("Espaço não reservado!"); } }
  7. gramosiri2

    Exercicio Caixa Eletronico com Notas

    Exercicio Caixa eletrônico com Notas. Ola, estou tentando fazer um ex. aqui de um caixa eletrônico, onde precisa ser feito o saque apenas com as determinadas notas: 2, 5, 10, 20, 50 e 100 reais. Porém quando tento sacar 11 por exemplo ele soma uma nota de 10 apenas, acho que vai ter que tirar o mod, alguma ideia?? #include <stdio.h> #include <stdlib.h> int main() { int n100=0,n50=0,n20=0,n10=0,nota5=0,nota2=0; float valor=0; int op; printf("-> Quanto deseja sacar? R$"); scanf("%f",&valor); while(valor>=100){ valor=valor-100; n100=n100+1; } while(valor>=50){ valor=valor-50; n50=n50+1; } while(valor>=20){ valor=valor-20; n20=n20+1; } while(valor>=10){ valor=valor-10; n10=n10+1; } while(valor>=5){ valor=valor-5; nota5=nota5+1; } while(valor>=2){ valor=valor-2; nota2=nota2+1; } printf("SAQUE:\n"); printf("%d nota(s) de R$ 100.00\n",n100); printf("%d nota(s) de R$ 50.00\n",n50); printf("%d nota(s) de R$ 20.00\n",n20); printf("%d nota(s) de R$ 10.00\n",n10); printf("%d nota(s) de R$ 5.00\n",nota5); printf("%d nota(s) de R$ 2.00\n",nota2); return 0; }
  8. Não estou conseguindo entender esse programa em c , tem como me ajudar? Escreva um programa que armazene 40 elementos reais em um vetor. Mostrar o vetor e informar quantos números existem em cada faixa: Faixa 1 -> 1 - 100 Faixa 2 -> 200 - 450 Faixa 3 -> 501 - 745.5 Faixa 4 -> 800.5 - 920.9
  9. Cartilho

    Implementação do Radix sort

    Ao executar o meu .cpp ele tem feito tudo corretamente com todos os metodos, menos o radix, ele tem q calcular os tempos e fazer a media depois, ele não tem feito isso com o radix e não sei oq fazer, preciso muito de ajuda e uma solução, ja tentei de tudo, mas não sou bom em C++. link para ver funcionando: https://www.onlinegdb.com/fork/rkRmSLk24 #include <stdio.h> #include <time.h> #include <stdlib.h> #include <limits.h> #include <string.h> #include <chrono> #include <unistd.h> #include <iostream> using namespace std; int *v, *v1, *v2, *v3, *v4, *v5, *v6, *v7; //------------------------------------------------------------------------------------- void bubbleSort(int v[], int n) { bool trocou; int k = n; do { trocou = false; k--; for (int i = 0; i < k; i++) if (v[i+1] < v[i]) { int aux = v[i+1]; v[i+1] = v[i]; v[i] = aux; trocou = true; } } while (trocou); } //------------------------------------------------------------------------------------- void insertionSort(int v[], int n) { int i, j, chave; for (j = 1; j < n; j++) { chave = v[j]; i = j - 1; while (i >= 0 && v[i] > chave) { v[i+1] = v[i]; i--; } v[i+1] = chave; } } //------------------------------------------------------------------------------------- void selectionSort(int v[], int n) { int i, j, min; for(i = 0; i < n-1; i++) { min = i; for (j = i + 1; j < n; j++) if (v[j] < v[min]) min = j; if (min != i) { int temp = v[min]; v[min] = v[i]; v[i] = temp; } } } //------------------------------------------------------------------------------------- void shellSort(int v[], int n) { int i , j , valor; int h = 1; while(h < n) { h = 3*h+1; } while (h > 1) { h /= 3; for(i = h; i < n; i++) { valor = v[i]; j = i - h; while (j >= 0 && valor < v[j]) { v [j + h] = v[j]; j -= h; } v [j + h] = valor; } } } //------------------------------------------------------------------------------------- void quickSort1(int v[], int ini, int fim) { int i = ini; int j = fim; int pivo = v[(ini+ fim)/2]; // Pivo e o elemento central do { while (v[i] < pivo && i < fim) i++; while (pivo < v[j] && j > ini) j--; if (i <= j) { int aux = v[i]; v[i] = v[j]; v[j] = aux; i++; j--; } } while (i <= j); if (ini < j) quickSort1(v,ini,j); if (i < fim) quickSort1(v,i,fim); } void quickSort(int v[], int tam) { quickSort1(v, 0, tam-1); } //------------------------------------------------------------------------------------- void intercala(int v[], int aux[], int ini, int meio, int fim) { int i = ini, j = fim, k; for (k = ini; k <= meio; k++) aux[k] = v[k]; for (k = meio+1; k <= fim; k++) aux[fim + meio + 1 - k] = v[k]; for (k = ini; k <= fim; k++) if (aux[i] <= aux[j]) v[k] = aux[i++]; else v[k] = aux[j--]; } void mergeSort1(int v[], int aux[], int ini, int fim) { if (ini < fim) { int meio = (ini + fim) / 2; mergeSort1(v, aux, ini, meio); mergeSort1(v, aux, meio+1, fim); intercala(v, aux, ini, meio, fim); } } void mergeSort(int v[], int n) { int *aux = (int *) malloc(n * sizeof(int)); mergeSort1(v, aux, 0, n-1); free(aux); } //------------------------------------------------------------------------------------- int getMax(int v[], int tam) { int max = v[0]; for (int i = 1; i < tam; i++) if (v[i] > max) max = v[i]; return max; } void countSort(int v[], int tam, int exp) { int output[tam], i, count[10] = {0}; for (i = 0; i < tam; i++) count[(v[i] / exp) % 10]++; for (i = 1; i < 10; i++) count[i] += count[i-1]; for (i = tam - 1; i >= 0; i--) { output[count[(v[i] / exp) % 10] - 1] = v[i]; count[(v[i] / exp) % 10]--; } for (i = 0; i < tam; i++) v[i] = output[i]; } void radixsort(int v[], int tam) { int exp, m; m = getMax(v, tam); for (exp = 1; m/exp > 0; exp *= 10) countSort(v, tam, exp); } //------------------------------------------------------------------------------------- void gerar(int v[], int tam) { srand((unsigned int)time(NULL)); for (int i = 0; i < tam; i++) v[i] = rand() % 100000001; } //------------------------------------------------------------------------------------- void copiar(int origem[], int destino[], int n) { for (int i = 0; i < n; i++) destino[i] = origem[i]; } //------------------------------------------------------------------------------------- bool verifica(int v[], int n) { for (int i = 0; i < n-1; i++) if (v[i] > v[i+1]) return false; return true; } //------------------------------------------------------------------------------------- void inverte(int v[], int n) { for (int i = 0, j = n-1; i < n/2; i++,j--) v[i] = v[j]; } //------------------------------------------------------------------------------------- int main(void) { chrono::steady_clock::time_point start, end; long double cpu_time; int tam, iter; char metodos[100]; long double tempo[] = { 0, 0, 0, 0, 0, 0 }; tam = 0; printf("Quantos numeros? "); scanf("%d", &tam); getchar(); if (tam <= 0) return 0; printf("Selecione os metodos:\n 1-Bubble sort\n 2-Selection sort\n 3-Insertion sort\n 4-Shell sort\n 5-Quicksort\n 6-Mergesort\n 7-Radix sort\nMetodos: "); gets(metodos); printf("Quantas execucoes (1, 2, 3, ...)? "); scanf("%d", &iter); getchar(); if (iter <= 0) return 0; v = (int *) malloc(tam * sizeof(int)); v1 = (int *) malloc(tam * sizeof(int)); v2 = (int *) malloc(tam * sizeof(int)); v3 = (int *) malloc(tam * sizeof(int)); v4 = (int *) malloc(tam * sizeof(int)); v5 = (int *) malloc(tam * sizeof(int)); v6 = (int *) malloc(tam * sizeof(int)); v7 = (int *) malloc(tam * sizeof(int)); for (int i = 1; i <= iter; i++) { printf("------------------------------------------------\nExecucao %d:\n------------------------------------------------\n", i); printf("Gerando %d elementos...\n", tam); gerar(v, tam); copiar(v, v1, tam); copiar(v, v2, tam); copiar(v, v3, tam); copiar(v, v4, tam); copiar(v, v5, tam); copiar(v, v6, tam); copiar(v, v7, tam); // bubble if (strchr(metodos, '1') != NULL) { printf("Bubble sort...\n"); start = chrono::steady_clock::now(); bubbleSort(v1, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v1, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[0] += cpu_time; } // selection if (strchr(metodos, '2') != NULL) { printf("Selection sort...\n"); start = chrono::steady_clock::now(); selectionSort(v3, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v3, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[1] += cpu_time; } // insertion if (strchr(metodos, '3') != NULL) { printf("Insertion sort...\n"); start = chrono::steady_clock::now(); insertionSort(v2, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v2, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[2] += cpu_time; } // shell if (strchr(metodos, '4') != NULL) { printf("Shell sort...\n"); start = chrono::steady_clock::now(); shellSort(v4, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v4, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[3] += cpu_time; } // quick if (strchr(metodos, '5') != NULL) { printf("Quick sort...\n"); start = chrono::steady_clock::now(); quickSort(v5, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v5, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[4] += cpu_time; } // merge if (strchr(metodos, '6') != NULL) { printf("Merge sort...\n"); start = chrono::steady_clock::now(); mergeSort(v6, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v6, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[5] += cpu_time; } //radixsort if (strchr(metodos, '7') != NULL) { printf("Radix sort...\n"); start = chrono::steady_clock::now(); radixsort(v7, tam); end = chrono::steady_clock::now(); cpu_time = chrono::duration_cast<chrono::nanoseconds>(end - start).count() / (long double) 1000000.0; printf("%s. Tempo: %lf ms (%lf s)\n", verifica(v7, tam) ? "OK":"ERRO", cpu_time, cpu_time/1000); tempo[6] += cpu_time; } } if (iter > 1) { printf("-------------------------------------------\nTempos medios:\n"); if (strchr(metodos, '1') != NULL) printf("Bubble sort: %lf ms (%lf s)\n", tempo[0]/iter, tempo[0]/(iter*1000)); if (strchr(metodos, '2') != NULL) printf("selection sort: %lf ms (%lf s)\n", tempo[1]/iter, tempo[1]/(iter*1000)); if (strchr(metodos, '3') != NULL) printf("Insertion sort: %lf ms (%lf s)\n", tempo[2]/iter, tempo[2]/(iter*1000)); if (strchr(metodos, '4') != NULL) printf("Shell sort: %lf ms (%lf s)\n", tempo[3]/iter, tempo[3]/(iter*1000)); if (strchr(metodos, '5') != NULL) printf("Quick sort: %lf ms (%lf s)\n", tempo[4]/iter, tempo[4]/(iter*1000)); if (strchr(metodos, '6') != NULL) printf("Merge sort: %lf ms (%lf s)\n", tempo[5]/iter, tempo[5]/(iter*1000)); if (strchr(metodos, '7') != NULL) printf("Radix sort: %lf ms (%lf s)\n", tempo[6]/iter, tempo[6]/(iter*1000)); } free(v); free(v1); free(v2); free(v3); free(v4); free(v5); free(v6); free(v7); }
  10. Olá, esse e meu primeiro post no forum, estou com problema para manipular dados recebidos de um arquivo Eu quero capturar esses dados e salvar em um variavel, podem com o fgets() eu so consigo printar na tela pois quando vai passar pra outra variavel ele so pega o ultimo caracter. Segue a baixo o codigo: void main(){ FILE *pont_arquivo; char caminho[100]; char tx[100]; //char c; char texto[100]; int i; //define e abre o arquivo que será formatado printf("coloque o caminho do arquivo que queira abrir\n"); gets(caminho); pont_arquivo = fopen(caminho, "r"); if (pont_arquivo == NULL){ printf ("ERRO: arquivo não encontrado ou sem permissão de acesso.\n"); exit(0); } printf("arquivo aberto.\n"); while(fgets(tx, 100, pont_arquivo) != NULL){ for( i=0; i< sizeof(tx); i++) texto[i] = tx[i]; } fclose(pont_arquivo); printf("%s", texto); } O print consegue retornar todos os valores do arquivo mas não consigo passar eles para uma variável e tratar dentro do código. ja tentei com strcpy e esse exemplo eu mandei com for pra atribuir um a um os dados, mas não consegui com nenhum dos dois. A baixo tem os dados do arquivo txt: teste{ sjdoasijd,xy jsioadja,xy jsiadj,xy ois,xy djsia,xy dijodajsi,xy jiosjodia,xy jbf23,xy 21,xy 21983,xy moisdoia,xy mh8293,xy ajksnd,xy ioaasd,xy }
  11. Linguagem C - Fazer um programa em C - 5 Comparações diferentes utilizando os métodos bubble sort, insertion sorte e selection sort e responda as questões abaixo: 1- Número médio de comparações de cada método de ordenação para cada vetor 2- Número médio de comparações de cada método de busca para cada vetor 3 - Quantas buscas são necessárias para compensar a ordenação para cada tamanho de vetor?
  12. Estou desenvolvendo um programa para trabalho de faculdade onde preciso usar estrutura de repetição para perguntar ao usuario um nome/itens armazena-los e quando o usuario nao quiser mais digitar os nomes ao sair do loop mostra todos os nomes que ele digitou. nao estou conseguindo preciso de ajuda. dese ja agradeço. meu codigo ate o momento e: #include <stdio.h> #include<stdlib.h> int main (){ char lista,lista2; int menu1,menu2; printf("***BEM-VINDO AO LISTSUPER***\n\n"); // ****Aqui o 1º menu de seleção****// printf("Escolha uma opção\n"); printf("1-inserir novos itens\n2-inserir quantidade\n3-calcular valor\n4-mostrar itens\n\n"); scanf("%i",&menu1); // ***Aqui e o loop para digitar os itens desejados****// if (menu1==1){ while(1) { printf("insira os itens\n"); scanf("%s",&lista); printf("deseja inserir novos itens? [1-sim/2-nao]\n"); scanf("%i",&menu2); if (menu2==2){ break;} } } // ***Caso ele não selecione a opção para inserir novos itens aparecera esta mensagem***// else { printf("Não ha itens inseridos\nEscolha a opção ( inserir novos itens )"); } //***Apos acabar de digitar os itens mostrar a lista dos itens digitados***// return 0; }
  13. GabiBozzano

    Programa em C [Ajuda]

    Boa tarde a todos! Tenho um programa pra entregar na faculdade e estou com algumas dificuldades. As 3 funções que o programa exige, eu já as criei, porem na main() não sei como chama-las, e não sei como criar um laço para que o jogo seja efetuado 10000 vezes, assim como não consigo fazer com que tenha a saída esperada. Não é permitido usar vetores, ponteiros, biblioteca math e etc. Qualquer dica eu apreciarei muito. Obrigada, Gabriela.
  14. Boa noite, me chamo Izaac Borges, acabei de começar aqui. Eu estava procurando um fórum de tecnologia onde eu pudesse encontrar gente disposta a me dar algumas dicas. Estou começando a programar agora, sempre gostei da ideia de programar, já tive algumas experiencias programando código para ,Arduíno coisas bem básicas mas agora estou estudando para valer e escolhi a linguagem C para começar pois já conhecia um pouco dela. Porem agora estou querendo fazer um sistema simples, onde ele armazena os seus dados(no caso seriam números de jogos da loteria) e depois você insere os números sorteados e ele diz quantos acertos você fez em cada jogo. Gostaria de saber se é possível fazer esse tipo de programa em C e se eu iria precisar de alguma outra tecnologia para banco de dados, se sim qual tecnologia recomendam para quem está iniciando e quer aprender fazendo pequenos projetos como esse.
  15. vitorianatalia

    Algoritmo Linguagem C Simples

    Sou iniciante em linguagem C e estou tentando resolver um exercício, mas não estou conseguindo. O enunciado é: Considerando a fórmula para o cálculo da distância entre dois pontos (x1, y1) e (x2, y2): a) Escreva uma função que receba como parâmetros as coordenadas de dois pontos e retorne a distância entre eles. b) Escreva um programa em C (função principal) que capture do teclado as coordenadas dos 3 vértices de um triângulo, calcule e imprima o perímetro deste triângulo, chamando a função anterior. c) Teste seu programa, simulando sua execução com as seguintes coordenadas: (4,1), (1,1), (4,5). Para resolver a a), simplesmente não conseguia nomear g como distancia que dava erro lvalue required as left operand of assignment. Para b), sei que preciso rodar a função distancia para obter os resultados de 3 contas diferentes, mas como consigo armazenar isso para somar em main depois? #include <stdio.h> #include <stdlib.h> #include <math.h> float distancia (float xa, float xb, float ya, float yb, float g) { g = sqrt(pow((xb-xa),2)+pow((yb-ya),2)); return g; } int main() { float x1, x2, y1, y2, g; // distancia entre dois pontos printf("Insira valor de x1 e x2: \n"); scanf("%f %f", &x1, &x2); printf("Insira valor de y1 e y2: \n"); scanf("%f %f", &y1, &y2); printf("A distancia entre os dois pontos e: %f", distancia(x1, x2, y1, y2, g)); return 0; }
  16. Preciso criar um programa que faça 3 execuções: A soma de todos os números pares não primos que antecedem N; A soma de todos os números ímpares não primos que antecedem N; A soma de todos os números primos que antecedem N. Mas não sei como, sei imprimir os primos, pares e impares ate n, mas fazer a soma não.
  17. Olá pessoal tudo bem? Bom, sou nova em programação com C e preciso fazer um programa que leia um número pelo teclado e o usuário deve informar se o número é em segundos, minutos ou horas. Se for em segundos, o programa deve mostrar eles convertidos em minutos e horas, se for em minutos deve mostrar eles em segundos e horas, e se for em horas deve mostrar em segundos e minutos. tentei dessa maneira, mas não sei como colocar um variável char dentro de uma condição [if/else]. aqui esta o código: #include<stdio.h> #include<stdlib.h> int main(){ int valor, h, m, s; char usu = '?'; printf("Digite um valor: "); scanf("%d", &valor); printf("O valor digitado corresponde a horas[h], minutos[m] ou segundos: "); scanf("%c", &usu); h = valor/3600; m = (valor%3600)/60; s = valor%60; if(strcmp(usu, "h")== 0){ printf("Você escolheu HORAS."); printf("O valor digitado corresponde a %d minutos e %d segundos.", m, s); }else{ if(strcmp(usu, "m")== 1){ printf("Você escolheu MINUTOS."); printf("O valor digitado corresponde a %d horas e %d minutos.", h, s); }else{ if(strcmp(usu, "s")== 2){ printf("Você escolheu SEGUNDOS."); printf("O valor digitado corresponde a %d horas e %d minutos.", h, m); }else{ } } } getchar(); }
  18. Dan Borges

    Ajuda para entender um código

    Olá, Tenho conhecimentos em C#, e ultimamente venho programando utilizando o MonoGame para desenvolver jogos. Estava procurando como é feito uma pista pseudo 3D, e achei esse artigo em JS: https://codeincomplete.com/posts/javascript-racer-v1-straight/ Por ter a lógica de programação da mente, mesmo sem saber js, entendi parte do código, mas esse trecho, não: segments = []; for(var n = 0 ; n < 500 ; n++) { // arbitrary road length segments.push({ index: n, p1: { world: { z: n *segmentLength }, camera: {}, screen: {} }, p2: { world: { z: (n+1)*segmentLength }, camera: {}, screen: {} }, color: Math.floor(n/rumbleLength)%2 ? COLORS.DARK : COLORS.LIGHT }); } A primeira vista entendi que ele está adicionando valores ao array segments com o método push. Mas, os valores colocados, não fazem sentido para mim. É como se fosse criada uma classe dinamicamente (que contenha as variáveis:, index, p1, p2...) sem precisar declará-la. Seria basicamente isso? Ele criou um objeto que representa uma classe, mas sem nomeá-la, ou algo semelhante?
  19. Bom dia, estou a tentar fazer um exercício para, dado um ficheiro .txt na directoria do programa, terei de encontrar todas as palavras que são palíndromos. Tendo este código para ler as palavras do ficheiro .txt (letra a letra) para uma matrix. Estando as palavras armazenadas numa matrix, como faço essa validação? Obg, #include <stdio.h> #include <stdlib.h> int main(int argc, char const *argv[]) { FILE* inp; inp = fopen("palindromo.txt","r"); char arr[100][50]; int i = 0; while(1){ char r = (char)fgetc(inp); int k = 0; while(r!=',' && !feof(inp)){ //Le ate fim de ficheiro arr[i][k++] = r; //armazena no array r = (char)fgetc(inp); } arr[i][k]=0; //ultimo carater nulo //Alguma parte aqui, valida se a palavra e PALINDROMO. //COMO?? if(feof(inp)){ //valida EOF break; } i++; } int j; for(j = 0;j<=i;j++){ printf("%s\n",arr[j] ); //Imprime array } return 0; }
  20. Não consigo apresentar as palavras equivalentes conseguem me ajudar??? O código é o seguinte: #include <stdio.h> char equivale(int ddd){ switch(ddd){ case 61: return "Brasilia"; break; case 71: return "Salvador"; break; case 11: return "Sao Palo"; break; case 21: return "Rio de Janeiro"; break; case 32: return "Juiz de Fora"; break; case 19: return "Campinas"; break; case 27: return "Vitoria"; break; case 31: return "Belo Horizonte"; break; } } int main(){ int ddd; scanf("%d",&ddd); equivale(ddd); printf("%d",equivale(ddd)); }
  21. Numa cidade as crianças costumam brincar com um jogo (de dois jogadores) onde: um jogador A define uma sequência de 10 letras usando: G, R e B (exemplo: G – G – G – R – B – R – B – B – B – R) um jogador B pode ler a sequência quantas vezes quiser o jogador B também pode dizer uma das letras e obter em quais posições a letra dada se encontra na sequência o jogador B também pode dar uma posição e saber qual letra ocupa a posição na sequência para finalizar, o jogador B deve dizer a sequência de letras, obtendo um ponto para cada acerto. Só consegui pensar nisso por enquanto. //identificar que letra ocupa esta posição na sequência: do{ scanf(“%d”,&Posicao); Posicao=Posicao-1;} while ((Posicao<0)||(Posicao>9)); printf(“%c”,Sequencia[Posicao]); //exibir sequencia for (Cont=0; Cont<=9; Cont++) printf(“%c”,Sequencia[Cont]); //exibir posições for (Cont=0; Cont<=9; Cont++) printf(“%d%c”,Cont+1,Sequencia[Cont]);
  22. Olá, pessoal, Mexo com microcontroladores, antigamente com PIC e agora com ARM (plataforma LPCXpresso). Ambos utilizam a linguagem C. Meu problema é o seguinte: Preciso converter um caractere que vem da UART (porta de comunicação). No PIC havia uma função pronta para tal, no ARM não. O caractere chega assim, por exemplo: P123 (tudo junto), e eu queria separar em: dado_recebido[]={'P', '1', '2', '3'}; Para poder utilizar um switch switch(dado_recebido[0]) { case 'P':.... } alguém tem alguma ideia de como posso fazer a conversão? Agradeço desde já.
  23. Caioba

    Erro ao resolver problema em c

    Salve! Estou com problemas ao solucionar uma questão que me foi proposta na linguagem C. Já desenvolvi todo o código, mas os casos de teste não batem. Questão: A agência cearense para investigações criminais denominada OBI (Operação de Baita Investigação) notou que, a exemplo do que ocorreu na Petrobrás, muito dinheiro foi desviado dos cofres públicos do estado para pagamento de propina a políticos nos últimos anos, especialmente pelo partido QU (Quadrilha Unida). A investigação está em andamento e a agência recrutou você para converter alguns valores que ficaram com caracteres estranhos após terem sidos descriptografados dos arquivos originais. Sua tarefa neste caso é relativamente simples: basta retirar todos os caracteres estranhos (não numéricos) de cada um dos dois valores disponíveis. Apenas tome o cuidado de separar os primeiros 11 dígitos do primeiro valor. Eles correspondem ao CPF do corrupto :) Entrada: A entrada é composta por duas linhas, cada uma delas contendo entre 1 e 60 caracteres ('0'-'9' e outros caracteres não numéricos ou, pelo menos, 1 caracter '0'-'9') e no máximo um ponto ".". Desconsiderando os caracteres não numéricos, o número final não deve ter mais de 17 caracteres (incluindo o ponto decimal). Exemplo de entrada: 7a5a6adfg4a4adsfgsd9fg6aa904aa91#$%1 42**&7746.67abc$ Saída: Imprima o CPF do corrupto e o valor que foram desviados dos cofres públicos. Exemplo de saída cpf 75644969049 propina 11427746.67 Meu código abaixo: #include<stdio.h> #include<string.h> int main(){ char caract[60]; char caract2[60]; char cpf[10]; char propina[15]; int i=0, j=0; scanf("%s", caract); for(i = 0; caract[i] != '\0'; i++){ if(caract[i] >= 48 && caract[i] <= 57){ if(j<11){ cpf[j] = caract[i]; } j++; } } cpf[11] = '\0'; cpf[12] = '\0'; scanf("%s", caract2); for(i = 0; caract2[i] != '\0'; i++){ if((caract2[i] >= 48 && caract2[i] <= 57) || caract2[i] == 46){ propina[j] = caract2[i]; j++; } } cpf[10] = '\0'; printf("cpf %s", cpf); printf("propina %s", propina); }
  24. TutoDS

    Via Verde em C

    Boa tarde pessoal. Sou novo a programar em C, programo diariamente em PHP e já programei em C#. Porém agora tenho que fazer um projeto para a minha Licenciatura em C, um programa estilo Via Verde. Mas estou com dificuldades, pois o meu pensamento está mais virado para Base de Dados. Se alguém me puder tirar as seguintes dúvidas agradeço: Como recomendam estruturar os ficheiros para guardar os dados do cliente, os veículos e as viagens? Como posso fazer a pesquisa num ficheiro, por exemplo inserir 123456789 e aparecer me os dados do cliente com esse NIF? Obrigado
  25. Pessoal, estou com dificuldades na solução deste problema: Seja um número N natural maior ou igual a 1. Fazer um algoritmo que calculo S = 1 + 1/2+ 1/3 + 1/4 + ... + 1/N. Meu código está assim: #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i, n; float soma; print("Entre com n: "); scanf("%d", &n); soma = 0; { for (i=1; i<=&n; i++) soma = soma + (1/i); } printf("\n O somatorio das fracoes eh: %f", soma); } Alguém pode me dizer por que não funcionando? O que deve mudar ou o que falta inserir? Solução: https://forum.imasters.com.br/topic/316721-resolvido soma-com-fração/
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.