Ir ao conteúdo

Posts recomendados

Postado

Estou desenvolvendo um calendario em C, só que estou tendo dificuldade na otimização da exibição do calendario em si (os numeros), o programa ja esta pronto só que como eu fui colocar o sistema de dias da semana nele. resumidamente preciso de ajuda para poder alterar o inicio do mes, no meu caso o mes sempre comeca no domingo.

OBS: Ja tenho o algoritmo que responde onde comeca o mes ex: 0= sábado | 6= sexta | 5=quinta | 4=quarta | 3=terca | 2= segunda | 1=domingo.

 

int mes29(int a){

    int i,j,mes[5][7],k=1;
    
        for(i=0; i<5; i++){
            for(j=0; j<7; j++){
                if(k<30){
                mes[j]=k++;
        }
        else
                mes[j]=0;        
            }
        }
        printf("Dom   Seg   Ter   Qua   Qui   Sex   Sab\n\n");
        for(i=0; i<5; i++){
            for(j=0; j<7; j++){
                printf("%3d   ",mes[j]);
            }
            printf("\n");
        }
}

 

 

 

Obrigado pela atenção

Postado

O fórum sumiu com todos os [ i ] sem espaços do seu código, pois para o fórum isto é a tag para deixar o texto em itálico (note que o texto está em itálico a partir do primeiro lugar onde deveria será o [ i ]). Leia minha assinatura abaixo para ver como postar código corretamente no fórum, e evitar que o fórum faça alterações nele.

 

 

2 horas atrás, MadroxD disse:

OBS: Ja tenho o algoritmo que responde onde comeca o mes ex: 0= sábado | 6= sexta | 5=quinta | 4=quarta | 3=terca | 2= segunda | 1=domingo.

Onde está? É esse valor que vem como parâmetro na variável int a?

 

Se sim, poderia mudar esse if:

if(k<30){

para

if(k<30 && (i*j + j + 1) >= a){

Mas antes precisa fazer 7=sábado ( if (a == 0) a=7; ).

  • Curtir 1
Postado

Seu programa usa várias funções repetidas quando poderia usar apenas uma:

 

int mes(int a, int ndias) {
    int i, j, mes[5][7], k = 1;
    
    if (a == 0) a = 7;
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 7; j++) {
            if(k < ndias + 1 && (i*7 + j + 1) >= a){
                mes[i][j] = k++;
            } else
                mes[i][j] = 0;
        }
    }
    printf("Dom   Seg   Ter   Qua   Qui   Sex   Sab\n\n");
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 7; j++) {
            printf("%3d   ", mes[i][j]);
        }
        printf("\n");
    }

}

E poderia chamar a função assim:

if((m%2)&&(m<9)||(m%2==0)&&(m>=8))
{					
    mes(x, 31);
}

 

Edit: adicionei a correção ao if ...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...