shiroyamacah Postado Abril 24, 2011 Denunciar Share Postado Abril 24, 2011 Eu fiz um programam para imprimir:1 0102 01101103 01110111011104 011110111101111011110....e fiz com for apenas.só que agora tem que usar apenas 1 for e nada de while/do-while/break/continueapenas for,if e else :(estou pensando, mas sempre tá dando errado >.<não sei como repetir o 1 x.xalguém tem alguma ideia?o que fiz com 3 fors:#include <stdio.h>main () { long int x; int i,cont; printf("Coloque um valor inteiro:\n"); scanf("%d", &x); for (cont=1;cont<=x;cont++) { for (i=1;i<=x;i++) { printf("0"); for (i=1;i<=x;i++) { printf("1");} } } printf("0\nPressione Enter para sair: "); getchar(); getchar();} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Myho Postado Abril 24, 2011 Denunciar Share Postado Abril 24, 2011 (editado) Usei uma variavel extra, Y, para armazenar a quantidade total de numeros a serem impressos. Já que só um for pode ser usado temos que saber quantos números serão impressos.O truque está aqui:if ( i%(x+1)==0) quando i chegar a um numero em que sua divisão por x+1 der resto 0, sabemos que é hora de começar outro bloco de números. #include <stdio.h> int main () { long int x,y; int i,cont; printf("Coloque um valor inteiro:\n"); scanf("%d", &x); y = (x*x) + x+1; // total de numeros a serem impressos for(int i=0; i < y; i++) { if ( i%(x+1)==0) printf("0"); else printf("1"); } getchar(); getchar(); return 0; } Editado Abril 24, 2011 por Myho Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 shiroyamacah Postado Abril 24, 2011 Autor Denunciar Share Postado Abril 24, 2011 (editado) deu certo XDobrigada :)só não entendi muito bem ainda o:y = (x*x) + x+1; Editado Abril 24, 2011 por shiroyamacah Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Myho Postado Abril 24, 2011 Denunciar Share Postado Abril 24, 2011 X é o número de padrões a serem desenhados, mas como só posso usar um for eu preciso saber quantos números tem que ser desenhados. Então supondo que o usuário digite 2, para que a saída seja0110110São 4 uns e 3 zeros, totalizando 7 números, se ele digita 30111011101110São 9 uns e 4 zeros, totalizando 13 números.Como pode ver o numero de uns é sempre o quadrado do que o usuário digitou ( x ) e o numero de zeros é sempre um a mais do que o número digitado ( x ).Essa foi a maneira que eu pensei para resolver, podem existir outras, contanto que o resultado seja o esperado, tanto faz =) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
shiroyamacah
Eu fiz um programam para imprimir:
1 010
2 0110110
3 0111011101110
4 011110111101111011110
....
e fiz com for apenas.
só que agora tem que usar apenas 1 for e nada de while/do-while/break/continue
apenas for,if e else :(
estou pensando, mas sempre tá dando errado >.<
não sei como repetir o 1 x.x
alguém tem alguma ideia?
o que fiz com 3 fors:
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.