cutinho 0 Denunciar post Postado Julho 17, 2013 Boa tarde pessoal É o seguinte, faço sistemas de informação na UFS, meu professor passou uma questão só que sou novo e estou com extrema dificuldade vocês podem me ajudar a resolver? Eu quero ajuda pois quero entender e não achar feito. 1) Escrever um programa C para ler uma série de pares de valores, cada par de valores representa um intervalo, e imprimir para cada par de valores todos os valores do intervalo, inclusive os limites do intervalo, que sejam múltiplos de 3. Um valor de início de intervalo negativo indicará final dos intervalos. Os valores devem ser impressos obedecendo ao layout de saída, como dado no exemplo abaixo: Intervalo 1: 22 – 29 valores: 24 27 Intervalo 2: 203 – 218 valores: 204 207 210 213 216 Intervalo 3: 15 – 22 valores: 15 18 21 Eu comecei mas não conseguir continuar e nem sei se é com for ou while #include <stdio.h> #include <stdlib.h> main(){ int lim, valor_1, valor_2,i; *Eu não sei como fazer para imprimir os n° printf("digite o primeiro valor"); multiplos de 3 e a condição. scanf("%d", &valor_1); printf("digite o segundo valor"); scanf("%d", &valor_2); for... Muito grato Compartilhar este post Link para o post Compartilhar em outros sites
reebr 94 Denunciar post Postado Julho 18, 2013 Uma forma de verificar o resto de uma divisão é utilizando módulo ( operador "%" ). Por exemplo, para saber o resto da divisão 3 / 2: float resultado = 3 % 2; printf("%f", resultado); Bom, a lógica: Todo número dividido por 3 onde seu resto é 0, é um divisor. Você já tem o primeiro e o segundo número. Então, faça um loop para percorrer esse intervalo. A condição para exibir os números pode ser feita desta forma: /* "i" vai receber o primeiro número e vai permanecer no loop enquanto * "i" for menor/igual ao segundo número lido. */ for (i = valor_1; i <= valor_2; i++) if((i % 3) == 0) printf("%i", i); Compartilhar este post Link para o post Compartilhar em outros sites
cutinho 0 Denunciar post Postado Julho 22, 2013 Bom dia eu tentei mas dá erro no while me ajuda(eu uso o devc++ #include <stdio.h> #include <stdlib.h> #include<conio.h> main(){ int j,x,y,i; printf("digite o primeiro valor ordem crescente"); scanf("%d",&x); printf("digite o segundo valor "); scanf("%d",&y); while(i<=y){ for(i=x;i<=y;i++ ;) If((i%3)==0) printf("%d",i); } getche(); } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Julho 22, 2013 int inicio, final; scanf("%d %d", &inicio, &final); for(; inicio<=final; inicio++) { if (inicio%3==0) printf("%d ", inicio); } Ou então int inicio, final; scanf("%d %d", &inicio, &final); // Procura o primeiro inteiro divisível por 3 for(;inicio <= final && inicio % 3 != 0; inicio++); for(; inicio <= final; inicio += 3) printf("%d ", inicio); Aí depende do que vc quer mostrar pro professor. Compartilhar este post Link para o post Compartilhar em outros sites
cutinho 0 Denunciar post Postado Julho 23, 2013 Olá galera finalmente estou quase lá (o devc++ estava dando erro) o code blocks compilou, só que agora eu preciso de uma condição para parar, pois a questão pede apenas um número negativo e com o comando que eu fiz só para com os dois, e também para ele pedir para digitar novos valores.Muito Obrigado Neelix e Isis. #include <stdio.h> #include <conio.h> main(){ int inicio,fim; printf("digite valores para inicio e fim do intervalo:\n"); scanf("%d %d",&inicio,&fim); if(inicio<0 || fim<0) printf("finalizando programa"); while(inicio >= 0 || fim >=0){ for(;inicio<=fim;inicio++) if(inicio%3==0) printf("%d ",inicio); } getche(); } Compartilhar este post Link para o post Compartilhar em outros sites
reebr 94 Denunciar post Postado Julho 23, 2013 #include <stdio.h> int main(void) { int valor_inicial, valor_final; for(;;) { printf("\nDigite o valor p/ Inicio (valores negativos finalizam o programa): "); scanf("%i", &valor_inicial); if (valor_inicial >= 0) { printf("Digite o valor Final: "); scanf("%i", &valor_final); if (valor_final > valor_inicial) { int contador; for (contador = valor_inicial; contador <= valor_final; contador++) if (!(contador % 3)) /*se for 0*/ printf("%i ", contador); } else printf("O segundo valor precisa ser maior que o primeiro.\n"); } else break; } scanf("%*c"); } Dei nomes fáceis para facilitar o entendimento. Compartilhar este post Link para o post Compartilhar em outros sites
cutinho 0 Denunciar post Postado Agosto 12, 2013 muito obrigado gente com a ajuda de vocês consegui ficou assim #include <stdio.h> #include <conio.h> main(){ int inicio,fim; printf("Digite valor para inicio e fim do intervalo:\n"); scanf("%d %d",&inicio,&fim); while(inicio >= 0){ for(;inicio<=fim;inicio++) if(inicio%3==0) printf("%d ",inicio); printf("\nDigite novos valores:\n"); scanf("%d %d",&inicio,&fim); } printf("fim do programa"); getche(); } Compartilhar este post Link para o post Compartilhar em outros sites