Ir para conteúdo
Fórum Script Brasil

gabrielEM

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre gabrielEM

gabrielEM's Achievements

0

Reputação

  1. Bom galera eu estou desenvolvendo uma simples calculadora, com as seguintes operações: adição, subtração, multiplicação, divisão, potência e resto da divisão. Esta deve usar diversas funções para resolver o problema e é nesta parte que que está ocorrendo erro o qual não consigo achar, não ocorre relação entre as funções, o erro deve estar na parte do comando switch e nas funções. #include <stdio.h> #include <stdlib.h> #include <math.h> float a,b; float soma(); float dif(); float mult(); float divisao(); float resto(); float pot(); int main(void) { while(1) { float num1, num2, resultado; char operador; printf("####### Calculadora #######\n"); printf("_______ Operadores ________\n"); printf("Soma\t\t\t[+]\n"); printf("Diferença\t\t[-]\n"); printf("Multiplicação\t\t[*]\n"); printf("Divisão\t\t\t[/]\n"); printf("Resto da divisão\t[%%]\n"); printf("Potência\t\t[^]\n"); printf("Para sair digite\t[000]\n"); printf("_____________________________\n"); printf("Sintaxe:\n[numero][operador][numero]\n\n"); scanf("%f%c%f",&num1,&operador,&num2); switch(operador) { case '+': resultado=soma(num1,num2); break; case '-': resultado=dif(num1,num2); break; case '*': resultado=mult(num1,num2); break; case '/': while(num2=0) { printf("Não há diviso por zero\n"); printf("Insira o valor\n"); scanf("%f", num2); } resultado=divisao(num1,num2); break; case '%': resultado=resto(num1,num2); break; case '^': resultado=pot(num1,num2); break; case '0': if (num1==0 && num2==0) system("exit"); else printf("Operador inválido"); break; default: printf("Operador inválido\n"); break; } printf("=%f", resultado); } return 0; } float soma(a,b) { float r; r=a+b; return r; } float dif(a,b) { float r; r=a-b; return r; } float mult(a,b) { float r; r=a*b; return r; } float divisao(a,b) { float r; r=a/b; return r; } float resto(a,b) { float r; r=(int)a%(int)b; return r; } float pot(a,b) { float r; r=pow(a,b); return r; }
  2. gabrielEM

    Vetores

    Para o linux seria mais ou menos isso, para o windows precisa-se dar uma adaptada, colar alguns system("pause") #include <stdio.h> #include <stdlib.h> main() { int contador; float f[20], g[20], resultado[20]; printf("Digite os valores de F\n"); for(contador=0;contador<20;contador++) scanf("%f\n", &f[contador]); printf("Digite os valores de G\n"); for(contador=0;contador<20;contador++) scanf("%f\n", &g[contador]); printf("O resultado da multiplicação do vetor F por G é:\n"); for(contador=0;contador<20;contador++) { resultado[contador]=f[contador]*g[contador]; printf("%f\n", resultador); } }
  3. Olá galera. Estou precisando de ajuda para encontrar um erro no código fonte ,que está em C, do meu programinha para encontrar os números primos de 2 até 1000. Ao executa-lo o programa não desenvolve corretamente da linha 51 até 64. Ele somente calculcula até o numero primo 19, após isso ele mostra somente os primos até 19. Veja o código abaixo: //calculo de numeros primos de 2 até 1000// #include <stdio.h> #include <stdlib.h> #include <math.h> main() { int primo, cont_primo, i, contador2, contador; int poss_primos[400], nprimo[200];/*com um calculo rápido sabemos que temos 400 possiveis primos entre 2 e 1000*/ int resto; poss_primos[0]=2; poss_primos[1]=3; poss_primos[2]=5; poss_primos[3]=7; nprimo[0]=2;/*numeros primos conhecidos*/ nprimo[1]=3; nprimo[2]=5; nprimo[3]=7; cont_primo=7; /*os quatros primeiros (for) colocam em um vetor os possiveis numeros primos, aqueles que terminam em 9 , 7, 3 e 1*/ contador2=4; for(contador=11; contador<1000; contador+=10) { poss_primos[contador2]=contador;/*salva todos os numeros terminados em 1*/ contador2=contador2+4;/*salva o poss_primos a cada 4 posições em um vetor (para o vetor ficar ordenado)*/ } contador2=5; for(contador=13; contador<1000;contador+=10)/*salva todos os numeros terminados em 3*/ { poss_primos[contador2]=contador; contador2=contador2+4; } contador2=6; for(contador=17; contador<1000;contador+=10)/*salva todos os numeros terminados em 7*/ { poss_primos[contador2]=contador; contador2=contador2+4; } contador2=7; for(contador=19; contador<1000;contador+=10)/*salva todos os numeros terminados em 9*/ { poss_primos[contador2]=contador; contador2=contador2+4; } for(contador=4;contador<200;contador++)/* atribui o valor 1 as posições ainda sem valor atribuido*/ nprimo[contador]=1;//até aqui está correto// for(i=4; i<400; i++)/*numeros primos ainda não definidos*/ { primo=1; for(contador=0; contador < i; contador++)/*testa se o numero é primo*/ { resto = poss_primos[i] % nprimo[contador];/*divide o possivel numero primo por todos os primos já encontrados*/ if (resto==0) primo=0;/*se pelo menos uma vez resto =0 o numero não é primo*/ } if (primo==1)/*se o numero primo*/ { cont_primo++;/*conta as posições do vetor nprimo, primeiramente cont_primo=7*/ nprimo[cont_primo]=poss_primos[i];/*passa o valor de poss_primos para o vetor nprimo (os numeros primos) */ } } for(contador=0; contador<200; contador++) { if(nprimo[contador]>1) printf("%d\n", nprimo[contador]);/*como não sabemos certo quantos numeros primos tem, se o valor não foi modificado não é mostrado*/ } }
×
×
  • Criar Novo...