Ir para conteúdo
Fórum Script Brasil
  • 0

Forma mais eficiente para imprimir um calendario.


brunokadri

Pergunta

Pessoal, estou projetando um programa que imprime calendarios de qualquer ano digitado pelo usuario em C. Meu algoritmo está 100% pronto, porém não é 100% eficiente, e usa muitas linhas de codigo. Então a minha pergunta é: como imprimir o calendário abaixo com o menor numero de linhas de codigo possível?

Calendário no link: https://susy.ic.unicamp.br:9999/si100a/04/dados/arq3.res

Obs: Tem que ser exatamente igual.

Desde já agradeço.

Editado por Jhonas
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Não consegui tirar foto, se eu copiar e colar aqui olha como fica:

Se eu fosse um cracker você acha que eu iria atacar um forum de programadores?

Calendario do ano 2015
|-----------------------------||-----------------------------|
|Janeiro ||Fevereiro |
|-----------------------------||-----------------------------|
| dom seg ter qua qui sex sab || dom seg ter qua qui sex sab |
| -- -- -- -- 01 02 03 || 01 02 03 04 05 06 07 |
| 04 05 06 07 08 09 10 || 08 09 10 11 12 13 14 |
| 11 12 13 14 15 16 17 || 15 16 17 18 19 20 21 |
| 18 19 20 21 22 23 24 || 22 23 24 25 26 27 28 |
| 25 26 27 28 29 30 31 || -- -- -- -- -- -- -- |
| -- -- -- -- -- -- -- || -- -- -- -- -- -- -- |
|-----------------------------||-----------------------------|
|Março ||Abril |
|-----------------------------||-----------------------------|
| dom seg ter qua qui sex sab || dom seg ter qua qui sex sab |
| 01 02 03 04 05 06 07 || -- -- -- 01 02 03 04 |
| 08 09 10 11 12 13 14 || 05 06 07 08 09 10 11 |
| 15 16 17 18 19 20 21 || 12 13 14 15 16 17 18 |
| 22 23 24 25 26 27 28 || 19 20 21 22 23 24 25 |
| 29 30 31 -- -- -- -- || 26 27 28 29 30 -- -- |
| -- -- -- -- -- -- -- || -- -- -- -- -- -- -- |
|-----------------------------||-----------------------------|
|Maio ||Junho |
|-----------------------------||-----------------------------|
| dom seg ter qua qui sex sab || dom seg ter qua qui sex sab |
| -- -- -- -- -- 01 02 || -- 01 02 03 04 05 06 |
| 03 04 05 06 07 08 09 || 07 08 09 10 11 12 13 |
| 10 11 12 13 14 15 16 || 14 15 16 17 18 19 20 |
| 17 18 19 20 21 22 23 || 21 22 23 24 25 26 27 |
| 24 25 26 27 28 29 30 || 28 29 30 -- -- -- -- |
| 31 -- -- -- -- -- -- || -- -- -- -- -- -- -- |
|-----------------------------||-----------------------------|
|Julho ||Agosto |
|-----------------------------||-----------------------------|
| dom seg ter qua qui sex sab || dom seg ter qua qui sex sab |
| -- -- -- 01 02 03 04 || -- -- -- -- -- -- 01 |
| 05 06 07 08 09 10 11 || 02 03 04 05 06 07 08 |
| 12 13 14 15 16 17 18 || 09 10 11 12 13 14 15 |
| 19 20 21 22 23 24 25 || 16 17 18 19 20 21 22 |
| 26 27 28 29 30 31 -- || 23 24 25 26 27 28 29 |
| -- -- -- -- -- -- -- || 30 31 -- -- -- -- -- |
|-----------------------------||-----------------------------|
|Setembro ||Outubro |
|-----------------------------||-----------------------------|
| dom seg ter qua qui sex sab || dom seg ter qua qui sex sab |
| -- -- 01 02 03 04 05 || -- -- -- -- 01 02 03 |
| 06 07 08 09 10 11 12 || 04 05 06 07 08 09 10 |
| 13 14 15 16 17 18 19 || 11 12 13 14 15 16 17 |
| 20 21 22 23 24 25 26 || 18 19 20 21 22 23 24 |
| 27 28 29 30 -- -- -- || 25 26 27 28 29 30 31 |
| -- -- -- -- -- -- -- || -- -- -- -- -- -- -- |
|-----------------------------||-----------------------------|
|Novembro ||Dezembro |
|-----------------------------||-----------------------------|
| dom seg ter qua qui sex sab || dom seg ter qua qui sex sab |
| 01 02 03 04 05 06 07 || -- -- 01 02 03 04 05 |
| 08 09 10 11 12 13 14 || 06 07 08 09 10 11 12 |
| 15 16 17 18 19 20 21 || 13 14 15 16 17 18 19 |
| 22 23 24 25 26 27 28 || 20 21 22 23 24 25 26 |
| 29 30 -- -- -- -- -- || 27 28 29 30 31 -- -- |
| -- -- -- -- -- -- -- || -- -- -- -- -- -- -- |
|-----------------------------||-----------------------------|

Link para o comentário
Compartilhar em outros sites

  • 0

#include <stdio.h>
int main() {

int ds=0, ds2=0, l=0, k=0, dia=1, m=1, i;
char tra[40];
i=1;
tra[0]='|';
while (i<30){
tra='-';
i++;
}
tra='|';

switch (m){

case (1):
printf("|Janeiro |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (2):
printf("|Fevereiro |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (3):
printf("|Março |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (4):
printf("|Abril |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (5):
printf("|Maio |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (6):
printf("|Junho |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;

case (7):
printf("|Julho |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (8):
printf("|Agosto |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (9):
printf("|Setembro |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (10):
printf("|Outubro |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (11):
printf("|Novembro |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;


case (12):
printf("|Dezembro |\n");
printf("%s\n", tra);
printf("| dom seg ter qua qui sex sab |\n");
ds=(ds2+30)%7;
while (l<6){
printf("|");
while (k<7){
if((k>=ds2)&&((dia>=1)&&(dia<=30))){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else {
printf(" %d",dia);
dia++;
k++;
}
}
else {
printf(" --");
k++;
}
}
printf(" |\n");
ds2=0;
k=0;
l++;
}
l=0;
dia=1;
printf("%s\n", tra);
m++;
break;
}
return 0;
}

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...