Ir ao conteúdo
  • Cadastre-se

Guilherme Sixe

Membro Pleno
  • Posts

    34
  • Cadastrado em

  • Última visita

Tudo que Guilherme Sixe postou

  1. Engraçado que o mypokemon esta td correto, só o pokemon_adv que esta saindo lixo no print. adicionado 10 minutos depois Eu fui diminuindo o meu codigo pra saber da onde é o erro. E ele imprimindo lixo no pokemon_adv. Olhe só: #include<stdio.h> #include<stdlib.h> typedef struct{ char nome[20]; //struct dos pokemons iniciais int forca; int exp; char tipo[20]; int nivel; int cura; int potencia; int ataque; }pokemon; int main(){ char jogar; int poke; char escolha; pokemon Bulbassauro = { "Bulbassauro", rand()%10+1, 1, "Treinador", 1, rand()%3+1, 0, (Bulbassauro.forca*Bulbassauro.nivel)+Bulbassauro.exp+Bulbassauro.cura }; pokemon mypokemon = { "Bulbassauro", rand()%10+1, 1, "Treinador", 1, rand()%3+1, 0, (Bulbassauro.forca*Bulbassauro.nivel)+Bulbassauro.exp+Bulbassauro.cura }; pokemon pokemon_adv = { "Bulbassauro", rand()%10+1, 1, "Treinador", 1, rand()%3+1, 0, (Bulbassauro.forca*Bulbassauro.nivel)+Bulbassauro.exp+Bulbassauro.cura }; printf("\n\n Pokemon do adversario:\n Nome:\n Nivel: %d\n Força: %d\n Tipo: \n Ataque:%d", pokemon_adv.nome, pokemon_adv.nivel, pokemon_adv.forca, pokemon_adv.tipo, pokemon_adv.ataque); // ESTA IMPRIMINDO LIXO. printf("\n\n Meu Pokémon:\n Nome: %s\n Nivel: %d\n Força: %d\n Tipo: %s\n Ataque:%d\n\n", mypokemon.nome, mypokemon.nivel, mypokemon.forca, mypokemon.tipo, mypokemon.ataque);// ESTA IMPRIMINDO CERTO system("pause"); return 0; }
  2. Preciso buscar elementos em uma matriz, mas eu não posso entrar com as coordenadass como inteiro (Ex: scanf("%d %d", &linha, &coluna);), e sim como uma char e um inteiro na forma de string (Ex: A3 = Linha 1 e Coluna 3). EX: for(i=0;i<5;i++){ for(j=0;j<5;j++){ mat[i][j]=i; } } //Diga o elemento que se encontra na Mat[2][3], usando string "A1" para linha 1 Coluna 1, "B2", para Linha2 Coluna 2 e assim sucessivamente Gostaria de saber como eu lendo uma string A1 ele pode associar que essa e a linha 1 e coluna 1 da matriz? A=1 B=2 C=3 D=4 I=5 Eu tentei ler primeiro str[0] (que seria A, e assim eu associava o A a 1 com um "if") mas eu nao consigo fazer isso com o str[1] e associar a um inteiro pois ele intende que esse "1" e um char, e nao uma inteiro. Como posso estar fazendo isso? Ler uma string do formato LetraNumero e associar a uma coordenada na matrioz. Nao sei se eu consegui me expressar bem. Obrigado desde ja.
  3. 2)Crie uma função que coloque o número 1 em uma matriz, nas posições indicadas por um arquivo txt. A função possui o seguinte protótipo: - void leArquivo(char nome[ ], int matriz[ ][5]); - O parâmetro “nome” indica o nome do arquivo que será aberto. - O arquivo possui apenas dois caracteres em cada linha, seguindo o modelo do trabalho final: Ex: A1 B2 D4 Cada letra fica responsavel por uma linha da matriz. A =0, B=1 e assim por diante. O parâmetro “matriz” é uma matriz preenchida somente com zeros. Eu consigo colocar os números na linha certa, mas na hora de ler o segundo caractere da string (para poder alocar na coluna), ele pega lixo e não o numero certo. Se puderem, deem uma olhada no meu codigo. Obs: Na hora de ler o segundo caractere da string, quando substituo a variável coordenada[1] por coordenada[2], que por sinal nao existe, ele aloca os numeros "1" na primeira coluna, incorretamente. O problema é, nao consigo ler o segundo caractere da string da forma int para poder alocar na coluna certa. Como posso fazer isso?. Obrigado. #include<stdio.h> #include<stdlib.h> void leArquivo(char nome[], int matriz[][5]); int main(){ char nome[200] = {"Questao 2 Slide.txt"}; int matriz[5][5], i, j; for(i=0;i<5;i++){ for(j=0;j<5;j++){ matriz[i][j]=0; } } leArquivo(nome, matriz); system("pause"); return 0; } void leArquivo(char nome[], int matriz[][5]){ FILE *f; char coordenada[2]; int i, x, y, linha, b=0; f=fopen(nome, "r"); if(f==NULL){ perror("Erro!"); exit(-1); } while(fscanf(f, "%s", &coordenada)!=EOF){ printf("Coordenadas %d = %s\n", b, coordenada); b++; if(coordenada[0]=='A'){ linha=0; } if(coordenada[0]=='B'){ linha=1; } if(coordenada[0]=='C'){ linha=2; } if(coordenada[0]=='D'){ linha=3; } if(coordenada[0]=='E'){ linha=4; } for(x=0;x<5;x++){ for(y=0;y<5;y++){ matriz[linha][coordenada[1]]=1; } } } printf("\n\n\n\n\n"); for(x=0;x<5;x++){ printf("\n"); for(y=0;y<5;y++){ printf("%d ", matriz[x][y]); } } fclose(f); }
  4. Sim,eu tinha tirado para testar o nivel e ataque. Quando coloco ele continua vindo lixo. Vem varios caracters aleatórios no nome e tipo.
  5. Bom dia pessoal. Estou com um problema estranho no meu código. Quando eu peço para imprimir informações de uma struct, ele imprime apenas de uma variavel da estruct, na outra variavel ele imprimi lixo, como seu eu não atribuísse nada a ela, mas eu atribui, como na variável anterior. Peço que vejem o meu codigo. No final do codigo eu printo as informações das duas variaveis (pokemon_adv e mypokemon) da minha struct pokemon_treinador , mas ele so imprime certo uma (mypokemon), na pokemon_adv ele imprime lixo. #include<stdio.h> #include<stdlib.h> typedef struct{ char nome[20]; //struct dos pokemons iniciais int forca; int exp; char tipo[20]; int nivel; int cura; int potencia; int ataque; }pokemon; typedef struct{ //structs dos treinadores int exp_total; char poke; }treinador; typedef struct{ char nome[20]; int forca; int exp; char tipo[20]; int nivel; int cura; int potencia; int ataque; } pokemon_treinador; int main(){ char jogar; int poke; char escolha; pokemon Bulbassauro = { "Bulbassauro", rand()%10+1, 1, "Treinador", 1, rand()%3+1, 0, (Bulbassauro.forca*Bulbassauro.nivel)+Bulbassauro.exp+Bulbassauro.cura }; pokemon Squirtle = { "Squirtle", rand()%10+1, 1, "Treinador", 1, 0, 0, (Squirtle.forca*Squirtle.nivel)+Squirtle.exp }; pokemon Pikachu = { "Pikachu", rand()%10+1, 1, "Treinador", 1, 0, rand()%3+1, (Pikachu.forca*Pikachu.nivel)+Pikachu.exp+Pikachu.potencia }; pokemon Sandshrew = { "Sandshrew", rand()%10+1, 1, "Treinador", 1, 0, 0, 2*((Sandshrew.forca*Sandshrew.nivel)+Sandshrew.exp) }; pokemon_treinador pokemon_adv, mypokemon; treinador treinador1, treinador2; treinador1.exp_total=1; treinador2.exp_total=1; poke=rand()%4+1;// MAQUINA ESCOLHENDO SEU POKEMON INICIAL ALEATORIAMENTE if(poke==1){ pokemon pokemon_adv = { "Bulbassauro", rand()%10+1, 1, "Treinador", 1, rand()%3+1, 0, (Bulbassauro.forca*Bulbassauro.nivel)+Bulbassauro.exp+Bulbassauro.cura }; } if(poke==2){ pokemon pokemon_adv = { "Squirtle", rand()%10+1, 1, "Treinador", 1, 0, 0, (Squirtle.forca*Squirtle.nivel)+Squirtle.exp }; } if(poke==3){ pokemon pokemon_adv = { "Pikachu", rand()%10+1, 1, "Treinador", 1, 0, rand()%3+1, (Pikachu.forca*Pikachu.nivel)+Pikachu.exp+Pikachu.potencia }; } if(poke==4){ pokemon pokemon_adv = { "Sandshrew", rand()%10+1, 1, "Treinador", 1, 0, 0, 2*((Sandshrew.forca*Sandshrew.nivel)+Sandshrew.exp) }; } printf("\t\t\n\n\n [J] para JOGAR\n\n\t\t [?] para saber como JOGAR\n\n "); //MENU scanf("%c", &jogar); switch(jogar){ case 'J': system("cls"); printf("\n\n Escolha o seu Pokémon incial entre as opções a baixo:\n\n\n [B] BULBASSAURO [P] PIKACHU [S] SQUIRTLE [A] SANDSHREW\n\n "); fflush(stdin); scanf("%c", &escolha); //EU ESCOLHENDO MEU POKEMON INICIAL if(escolha=='B'){ system("cls"); pokemon mypokemon = { "Bulbassauro", rand()%10+1, 1, "Treinador", 1, rand()%3+1, 0, (Bulbassauro.forca*Bulbassauro.nivel)+Bulbassauro.exp+Bulbassauro.cura }; printf("\n\n Parabéns! Seu primeiro Pokémon é o %s", mypokemon.nome); printf("\n\n Nome: %s\n Nivel: %d\n Força: %d\n Tipo: %s\n Ataque:%d\n\n", mypokemon.nome, mypokemon.nivel, mypokemon.forca, mypokemon.tipo, mypokemon.ataque); treinador1.poke=='B'; } if(escolha=='P'){ system("cls"); pokemon mypokemon = { "Pikachu", rand()%10+1, 1, "Treinador", 1, 0, rand()%3+1, (Pikachu.forca*Pikachu.nivel)+Pikachu.exp+Pikachu.potencia }; printf("\n\n Parabéns! Seu primeiro Pokémon é o %s", mypokemon.nome); printf("\n\n Nome: %s\n Nivel: %d\n Força: %d\n Tipo: %s\n Ataque:%d\n\n", mypokemon.nome, mypokemon.nivel, mypokemon.forca, mypokemon.tipo, mypokemon.ataque); treinador1.poke=='P'; } if(escolha=='S'){ system("cls"); pokemon mypokemon = { "Squirtle", rand()%10+1, 1, "Treinador", 1, 0, 0, (Squirtle.forca*Squirtle.nivel)+Squirtle.exp }; printf("\n\n Parabéns! Seu primeiro Pokémon é o %s", mypokemon.nome); printf("\n\n Nome: %s\n Nivel: %d\n Força: %d\n Tipo: %s\n Ataque:%d\n\n", mypokemon.nome, mypokemon.nivel, mypokemon.forca, mypokemon.tipo, mypokemon.ataque); treinador1.poke=='S'; } if(escolha=='A'){ system("cls"); pokemon mypokemon = { "Sandshrew", rand()%10+1, 1, "Treinador", 1, 0, 0, 2*((Sandshrew.forca*Sandshrew.nivel)+Sandshrew.exp) }; printf("\n\n Parabéns! Seu primeiro Pokémon é o %s", mypokemon.nome); printf("\n\n Nome: %s\n Nivel: %d\n Força: %d\n Tipo: %s\n Ataque:%d\n\n", mypokemon.nome, mypokemon.nivel, mypokemon.forca, mypokemon.tipo, mypokemon.ataque); treinador1.poke=='W'; } break; } system("cls"); printf("\n\n Pokédex:"); printf("\n\n Pokemon do adversario:\n Nome:\n Nivel: %d\n Força: %d\n Tipo: \n Ataque:%d", pokemon_adv.nome, pokemon_adv.nivel, pokemon_adv.forca, pokemon_adv.tipo, pokemon_adv.ataque); // ESTA IMPRIMINDO LIXO. printf("\n\n Meu Pokémon:\n Nome: %s\n Nivel: %d\n Força: %d\n Tipo: %s\n Ataque:%d\n\n", mypokemon.nome, mypokemon.nivel, mypokemon.forca, mypokemon.tipo, mypokemon.ataque);// ESTA IMPRIMINDO CERTO system("pause"); return 0; }
  6. Agradeço as dicas de vocês. Único jeito que consegui foi levando o maior e menor como ponteiro, mesmo. Obg.
  7. Escreva uma função que receba 3 números informados pelo usuário no programa principal. A função deverá retornar o maior e o menor número. Posteriormente, o programa principal deverá imprimir essas informações. Essa função não possui o comando printf. -> O meu codigo ta mostrando ao contrario, nao sei se o jeito que eu estou retornando esta certo, ou e o codigo da funcao que da margem pra erro. Dependendo dos numeros que eu entro, ele retorna certo. Se alguem souber onde esta a falha, agradeceria. #include<stdlib.h> #include<stdio.h> int maior(int X, int Y, int Z); int main(){ int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("Maior: %d\n\nMenor:%d\n\n", maior(a, b, c)); system("pause"); return 0; } int maior(int X, int Y, int Z){ int maior, menor; if(X > Y){ maior = X; }else{ maior = Y; } if(Z > maior){ maior = Z; } if(X < Y){ menor = X; } else{ menor = Y; } if(Z < menor){ menor = Z; } return(maior, menor); }
  8. Boa noite, pessoal. Bom, eu sei que existe uma função que remove espaços do começo e fim de uma string, mas estou fazendo um trabalho que é preciso fazer isso sem usar essa tal função. Pesquisei um pouco e quebrei a cabeça ate chegar nesse codigo. Enfim, nao consigo mais progredir. Na minha mente, ela deveria estar funcinando. Se alguem souber o motivo de nao estar funcionando, ficaria grato. #include <stdio.h> #include <string.h> void TirarVacuo(char *s); int main(){ char texto[] = " testando remocao de espacos de texto arbitrario "; TirarVacuo(texto); printf("\n\n\%s", texto); return 0; } void TirarVacuo(char *s){ int i; char temp[strlen(s)]; // lado esquerdo for(i=0;i<strlen(s) && s[i]==' ';i++); temp[strlen(s)-i] = '\0'; // lado direito for(i=strlen(s);s[i]==' ' || s[i]=='\0';i--); temp[strlen(temp)-(strlen(s)-i)+1] = '\0'; strcpy(s,temp); } to.
  9. Escolha um jogo de cartas, baseado em um “baralho tradicional” (cada carta tem seu naipe e seu valor). Implemente a parte de distribuição (sorteio) de cartas para 2 jogadores, considerando que cada jogador ira receber 5 cartas. Exiba na tela as cartas que cada um dos jogadores recebeu. então pessoal. Esta completo o meu codigo e compilando, mas esta parecendo um erro! As vezes aparece um lixo no espaço que mostra o valor da carta. Ja procurei algo que esteja no codigo, mas ele me parece perfeito, sem erros. Alguem sabe porque esta acontecendo isso? Desde ja agradeço. #include<stdlib.h> #include<stdio.h> #include<string.h> #include<time.h> typedef struct{ char naipe[20]; int valor; char cor; }cartas; int main(){ cartas carta[51]; char naipe[12]= "Copas"; char naipe2[12]="Espadas"; char naipe3[12]="Paus"; char naipe4[12]="Ouros"; int i, n, n2; srand(time(NULL)); for(i=0; i<=12; i++){ if((i+1)%2==0){ carta[i].cor= 'V'; }else{ carta[i].cor= 'P'; } carta[i].valor=i+1; strcpy(carta[i].naipe, naipe); } for(i=13; i<=25; i++){ if((i+1)==0){ carta[i].cor= 'V'; }else{ carta[i].cor= 'P'; } carta[i].valor=i-12; strcpy(carta[i].naipe, naipe2); } for(i=26; i<=38; i++){ if((i+1)==0){ carta[i].cor= 'V'; }else{ carta[i].cor= 'P'; } carta[i].valor=i-25; strcpy(carta[i].naipe, naipe3); } for(i=39; i>=51; i++){ if((i+1)==0){ carta[i].cor= 'V'; }else{ carta[i].cor= 'P'; } carta[i].valor=i-38; strcpy(carta[i].naipe, naipe4); } printf("Joaosinho da Silva recebera:\n"); for(i=0; i<5;i++){ n=rand()%52; printf("\n%d %c de %s", carta[n].valor, carta[n].cor, carta[n].naipe); } printf("\n\nJulhinha da Silva recebera:\n"); for(i=0; i<5;i++){ n2=rand()%50; printf("\n%d %c de %s", carta[n2].valor, carta[n2].cor, carta[n2].naipe); } printf("\n\n"); system("pause"); return 0; }
  10. #include<stdlib.h> #include<stdio.h> #include<string.h> #include<time.h> typedef struct{ char nome[20]; }pokemon; int main(){ pokemon Bulbassauro; Bulbassauro.nome[6] = "Bulba"; sprintf("Nome: %s", Bulbassauro.nome); system("pause"); return 0; } Erro: [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings] Com o posso resolver esse erro? Obg.
  11. Estou criando um jogo (Pokemon), no dev c. Eu fiz uma matriz que representa o campo de jogo, onde eu ando com um caracter. No campo tem outros caracteres que representam os pokemons, caso eu entre na célula desse caracter, acusa que eu encontrei um pokemon, mas eu preciso deixar esses caracteres invisiveis (colocando cor preta) para que o jogador nao os veja, e assim fique andando ate achar um pokemon. Alguem sabe como faço isso, ou se da pra fazer.
  12. So esta mostrando primeiro primo. #include<stdio.h> #include<stdlib.h> int main(){ int div=0,i, n=2; while(n<100){ for(i=1;i<=n;i++){ if(n%i==0){ div++; } } if(div==2){ printf("\n%d", n); } n++; } system("pause"); return 0; }
  13. Meu código ele funciona pela metade. Faça um programa para ler 10 números DIFERENTES a serem armazenados em um vetor. Os dados deverão ser armazenados no vetor na ordem que forem sendo lidos, sendo que caso o usuário digite um número que já foi digitado anteriormente, o programa deverá pedir para ele digitar outro número. Note que cada valor digitado pelo usuário deve ser pesquisado no vetor, verificando se ele existe entre os números que já foram fornecidos. Exibir na tela o vetor final que foi digitado. adicionado 4 minutos depois #include<stdlib.h> #include<stdio.h> int main(){ int i, vet[10], aux[10], j; for(i=0;i<10;i++){ scanf("%d", &vet[i]); for(j=0;j<i; j++){ if(vet[i]==vet[j]){ printf("\nNumero repetido, entre com outro.\n"); scanf("%d", &aux[i]); vet[i]=aux[i]; } } } 1 for(i=0;i<10;i++){ printf("\n%d", vet[i]); } system("pause"); return 0; } [RESOLVIDO] Ja resolvi pessoal. Vou deixa o codigo aqui. #include<stdlib.h> #include<stdio.h> int main(){ int i, vet[10], aux[10], j, k; for(i=0;i<10;i++){ scanf("%d", &vet[i]); for(j=0;j<i; j++){ if(vet[i]==vet[j]){ printf("\nNumero repetido, entre com outro.\n"); i--; continue; } } } for(i=0;i<10;i++){ printf("\n%d", vet[i]); } system("pause"); return 0; }
  14. Eu pensei em fazer com vetor, mas como meu professor ainda nao chegou no assunto de vetores, (apenas for-do while-while), creio que não eu possa usar. Eu tentei fazer deste jeito, mas da muito trabalho e ainda não sei se da certo. Gostaria de saber uma forma mais simples de fazer esta questão, se existir, e claro. Obrigado, segue o código ate onde cheguei antes da minha cabeça explodir. -> Escreva um programa que leia um número inteiro pelo teclado e mostre na tela quantas vezes cada um de seus dígitos aparece no número. OBS: Considere que o número avaliado deve ser menor (ou igual) a 10mil. Por exemplo: para o número 2151, exibir: 1: 2 vezes 2: 1 vez 5: 1 vez #include<stdio.h> #include<stdlib.h> main(){ int n, a, b, c; scanf("%d", &n); if((n>=10)&&(n<100)){ a=n/10; b=n-(a*10); if(a==b){ printf("%d = 1", a); } } if((n>=100)&&(n<1000)){ a=n/100; b=(n-(a*100))/10; c=n-(b*10); if((a=b)||(a==c)){ } if(b==c){ } if(){ } } if((n>=1000)&&(n<10000)){ a=n/1000; b=(n-(a*1000))/100; c=(n-(b*100))/10; d=n-(c*10); if(){ } if(){ } if(){ } if(){ } printf("",); } system("pause"); return 0; }
  15. Escreva um programa que leia números até o usuário digitar -1 (Obs: o valor –1 é somente um terminador e não deve ser considerado nos cálculos.), calcule e mostre: a) a soma dos números digitados; a quantidade de números digitado; c) a média dos números digitados; d) percentual de números positivos; d) percentual de números negativos; e) o maior número digitado; e) o menor número digitado; f) a média dos números pares. Estou com dificuldades de nao considerar o "-1" para o menor e/ou maior numeros digitados, caso seja o -1. Caso o -1 seja o maior ou menor numero, n consigo pensar em algo para que o programa mostre o menor/maior sem considera-lo. Segue o meu codigo #include<stdio.h> #include<stdlib.h> int main(){ int n=0, maior=0, menor=0; float media, soma=0, vzs=0, pos=0, neg=0, perc, perc2, media2, soma2=0, par=0; while(n!=-1){ scanf("%d", &n); soma=soma+n; vzs++; if(n>0){ pos++; } else{ neg++; } if(n>=maior){ if(n=!-1){ maior=n; } } } if(n<=menor){ if(n!=-1){ menor=n; } } if(n%2==0){ soma2=soma2+n; par++; } } media=(soma+1)/(vzs-1); perc=pos/(vzs-1); perc2=(neg-1)/(vzs-1); media2=soma2/par; printf("A-> %.2f\n", soma+1); printf("B-> %.2f\n", vzs-1); printf("C-> %.2f\n", media); printf("D-> %.2f\n", perc); printf("D-> %.2f\n", perc2); printf("E-> %d\n", maior); printf("E-> %d\n", menor); printf("F-> %.1f", media2); system("pause"); return 0; }
  16. #include<stdlib.h> #include<stdio.h> #include<math.h> int main(){ int n; float lg; scanf("%d", &n); lg=log10(n)/log10(2); if(lg%2==0){ printf("é"); } else{ printf("Não é"); } system("pause"); return 0; } Isso foi ate onde eu cheguei. Não sei se resolve o meu problema. Mas alem disso esta dando erra na hora do resto que nao pode ser um float com int. Alguem sabe resolver isso?
  17. Bom galera, eu estou resolvendo um exercício onde ele pede para manipular a matriz, trocando a diagonal principal pelo secundaria, trocar linhas e etc. Isso tudo eu consegui fazer, mas esta faltando uma, que é subtrair valores da linha 2 pelos da coluna 3 e substitui-los na linha 2. Vejam meu codigo, o que estou fazendo de errado. #include<stdio.h> #include<stdlib.h> //18) Escrever um programa que lê uma matriz M 10x10 e a mostra na tela. E crie funções para: //a) trocar a linha 2 com a linha 8 OK //b) subtrair os valores da linha 2 pelos valores da coluna 3, e o resultado deve substituir os valores da linha 2. //c) trocar a diagonal principal com a diagonal secundária OK void troca1(int mat1[][3]); void sub(int mat1[][3]); void trocadiago(int mat1[][3]); void somar(int mat1[][3]); int main() { int i, j, mat1[3][3]; for(i=0; i<3; i++) { for(j=0; j<3; j++) scanf("%d", &mat1[i][j]); } printf("Matriz 1:\n\n"); for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%3.d\t", mat1[i][j]); printf("\n\n"); } printf("Trocar linha 2 e 3: \n\n"); troca1(mat1); printf("Subtrair valores da linha 2 pelos da coluna 3 e substituilos na linha 2:\n\n"); sub(mat1); printf("Trocar diagonais:\n\n"); trocadiago(mat1); printf("Somar linha 1 com coluna 2 e substituir na coluna 1:\n\n"); somar(mat1); system("pause"); return 0; } void troca1(int mat1[][3]){ printf("Linha Trocada\n"); int i, j, aux; //troca linhas com uso de laço e auxiliar for(j=0;j<3;j++){//Percorrer todas as colunas aux = mat1[1][j];//variavel auxiliar recebe o valor da linha 2 na coluna atual, e a linha 2 nesta coluna fica vazia mat1[1][j] = mat1[2][j];// linha 2 recebe o valor da linha 8, que por sua vez fica vazia mat1[2][j] = aux; // linha 8 na coluna atual, recebe o valor da variavel auxiliar. } //apresenta linha trocada for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%d\t ",mat1[i][j]); printf("\n\n"); } } void sub(int mat1[][3]){ int i; int j; int soma=0; int mat3[3][3]; int aux; for(i=0; i<3; i++){ for(j=0; j<3; j++) mat3[i][j]=mat1[1][j]-mat1[i][2]; } for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%d\t ",mat3[i][j]); printf("\n\n"); } } void trocadiago(int mat1[][3]){ int i, j, aux; for(i=0;i<3;i++){ aux=mat1[i][i]; mat1[i][i]=mat1[i][3-1-i]; mat1[i][3-1-i]=aux; } for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf("%d\t ",mat1[i][j]); printf("\n\n"); } } }
  18. Como eu embaralharia usando rand() no int embaralha()? Saberia me responder?
  19. Tenho que distribuir 5 cartas para 2 jogadores. Ja fiz a função de preencher e embaralha, mas n sei o jeito de distribuir as cartas. Có #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> int preenche(void); int embaralha(void); char naipe[] = {'C', 'O', 'P', 'E', '\0'}; char carta[] = {'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', '\0'}; int main(){ puts("Baralho :"); preenche(); embaralha(); puts("\n"); system("pause"); return 0; } int preenche(void){ int i; int j; for (i = 0; i < strlen(naipe); i++) { for (j = 0; j < strlen(carta); j++) printf("%c %c", naipe[i], carta[j]); // -> só p/ ver quais cartas estão sendo criadas. printf("\n"); } return 0; } int embaralha(void){ int i,j,k,l; int aux; printf("Baralho Embaralhado:\n"); for (i = 0; i < strlen(naipe); i++){ for (j = 0; j < strlen(carta); j++) aux = carta[j]; carta[j] = carta[i]; carta[i] = aux; } for(k=0; k < 52;k++){ strcat(carta,naipe); printf("%c",carta[k]); } puts("\n"); return 0; } digo abaixo.
  20. Em trabalho que estou fazendo, pede-se para entrar com duas Matrizes quadradas, e que eu faça a operação de soma, subtração e multiplicação entre elas (com funções). A soma e subtração foram feitas, mas a multiplicação não estou conseguindo. Alguém poderia me dizer como se faz uma função para multiplicar matrizes quadradas? Agradeço. Segue o meu codigo: #include<stdio.h> #include<stdlib.h> void soma(int mat1[][3], int mat2[][3], int mat3[][3]); void sub(int mat1[][3], int mat2[][3], int mat3[][3]); int main() { int i, j, mat1[3][3], mat2[3][3], mat3[3][3]; for(i=0; i<3; i++) { for(j=0; j<3; j++) scanf("%d", &mat1[i][j]); } for(i=0; i<3; i++) { for(j=0; j<3; j++) scanf("%d", &mat2[i][j]); } printf("Matriz 1:\n\n"); for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%3.d\t", mat1[i][j]); printf("\n\n"); } printf("Matriz 2:\n\n"); for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%3.d\t", mat2[i][j]); printf("\n\n"); } printf("A soma das matrizes é igual a: \n\n"); soma(mat1, mat2, mat3); printf("A subtração das matrizes é igual a: \n\n"); sub(mat1, mat2, mat3); printf("A multiplicação das matrizes é igual a: \n\n"); mult(mat1, mat2, mat3); return 0; } void soma(int mat1[][3], int mat2[][3], int mat3[][3]){ int i; int j; for(i=0; i<3; i++){ for(j=0; j<3; j++) mat3[i][j] = mat1[i][j] + mat2[i][j]; } for(i=0; i<3; i++){ for(j=0; j<3; j++) printf("%d ", mat3[i][j]); printf("\n"); } } void sub(int mat1[][3], int mat2[][3], int mat3[][3]){ int i; int j; for(i=0; i<3; i++){ for(j=0; j<3; j++) mat3[i][j] = mat1[i][j] - mat2[i][j]; } for(i=0; i<3; i++){ for(j=0; j<3; j++) printf("%d ", mat3[i][j]); printf("\n"); } } void mult(int mat1[][3], int mat2[][3]){ //ESPEAÇO PARA A FUNÇÃO MULTIPLICAR MATRIZES }
  21. Preciso fazer uma função que some duas matrizes 6x6, e empaquei na função, não sei mais o que fazer pra contornar o problema. Se alguém souber, me deem uma direção. #include<stdio.h> #include<stdlib.h> void (int mat1, int mat2); int main(){ int tam=3; int i, j, mat1[tam][tam], mat2[tam][tam]; for(i=0;i<3;i++){ for(j=0;j<3;j++) scanf("%d", &mat1[i][j]); } for(i=0;i<3;i++){ for(j=0;j<3;j++) scanf("%d", &mat2[i][j]); } printf("Matriz 1:\n\n"); for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%3.d\t", mat1[i][j]); printf("\n\n"); } printf("Matriz 2:\n\n"); for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%3.d\t", mat2[i][j]); printf("\n\n"); } printf("A soma das matrizes é igual a: \n\n"); soma(mat1, mat2); return 0; } void(int mat1, int mat2){ int i; int j; for(i=0;i<3;i++){ for(j=0;j<3;j++) mat3[i][j]=mat1[i][j]+mat2[i][j]; } for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%d", mat3[i][j]); } return 0 }
  22. Eu fiz um código struct com informações de alunos, mas eu preciso imprimi-lo em ordem alfabética. Alguém tem noção de como faço isso? Já agradeço. Segui o código: #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct{ char nome[20]; int matricula; char curso[15]; } Cadastro; int main(){ int quantidade = 2; Cadastro alunos[quantidade]; int i; printf("\n\nCadastro: Nome do aluno (sem espaços), matricula, e nome do curso(sem espaços)\n\n"); for(i=0; i< quantidade; i++){ printf("Insira os dados, de acordo com o exemplo acima: \n"); scanf(" %s %d %s", &alunos[i].nome, &alunos[i].matricula, &alunos[i].curso); } for(i=0;i<quantidade;i++){ printf("\nNOME: %s\nMATRICULA: %d\nCURSO: %s\n", alunos[i].nome, alunos[i].matricula, alunos[i].curso); } return 0; }
  23. Criar um vetor de 50 aleatoriamente, e fazer uma fubção para deixa-lo crescente. Eu ja tinha o codigo desce programa, mas quando coloco para uma função colocar em crescente, ela retorna um valor só do vetor. Olhem, o que pode estar errado? As chaves? #include <stdio.h> #include<stdlib.h> #include<time.h> int crescente(int vet[]); int main (){ int vet[50]; int i; for(i=0;i<50;i++){ vet[i]=rand()%50; } printf(" %d ", crescente(vet)); return 0; } int crescente(int vet[]){ int i, aux, j; for(i=0;i<50;i++){ for(j=i+1; j<50 ; j++){ if(vet[i] > vet[j]){ aux = vet[i]; vet[i] = vet[j]; vet[j] = aux; } } } for(i=0; i<50; i++){ return vet[i]; } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!