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

Ajuda iniciante em C


thay__

Pergunta

Começei a tentar aprender C sozinha está semana, mas estou com dúvida neste exercício:

Fazer um programa que leia uma data qualquer (dia, mês e ano) e calcule a data do próximo dia.

Escrevi o programa assim

#include<stdio.h>
#include<math.h>

int main(){
int d,m,a;
printf("Digite a data desejada no formato(dia/mes/ano): ");
scanf ("%d/%d/%d", &d, &m, &a);
  if( m==01|| m==03 || m==05 || m==07 || m==08 || m==10 ){
    if ( d==31)
    (d=01, m++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
    else
    (d++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
   }

  if (m==04 || m==06 || m==09 || m==11){
    if (d==30);
     (d=01, m++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
    else
      (d++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
     }
  else{
    if (a%4==0){ /*Ano bissexto*/
      if ( d==29)
       (d=01, m=03);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
      else
       (d++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
     }
    else{
      if ( d==28)
      (d=01, m=03);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
      else
      (d++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
     }

  }
return 0;
}

E deram esses erros:

|8|error: invalid digit "8" in octal constant|

||In function 'main':|

|12|error: expected '}' before 'else'|

|17|error: expected identifier or '(' before 'if'|

|17|error: invalid digit "9" in octal constant|

|25|error: expected identifier or '(' before 'if'|

|44|error: expected identifier or '(' before 'return'|

|45|error: expected identifier or '(' before '}' token|

Mas não entendi oque está errado... Alguém pode ajudar?

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

2 respostass a esta questão

Posts Recomendados

  • 0

Quando você escreve um numero comecando com o (zero) está dizendo ao compilador que a base desse numero é octal, ou seja, pode representar numeros de 0 a 7.

Então você não pode fazer 08 porque vai dar erro.

Quando quiser representar numeros na base decimal apenas escreva sem o zero na frente, exemplo: 1,2,3...etc

Em alguns pontos do seu programa você escreveu if terminando com ';' isso causa erro nos blocos de decisão.

você pode terminar um if com ';', isso não é problema desde que a logica esteja correta.

Por exemplo:

Esse if esta errado:

if ( d==31)
    (d=01, m++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
    else
    (d++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
O correto seria
if ( d==31)
       {
       d=01;
       m++;
       printf("A data do proximo dia é: %d/%d/%d", d, m, a);
       }
    else
       {
       (d++);
       printf("A data do proximo dia é: %d/%d/%d", d, m, a);
       }

Tenta encontrar os outros erros e se precisar de ajuda é só falar.

Link para o comentário
Compartilhar em outros sites

  • 0
Quando você escreve um numero comecando com o (zero) está dizendo ao compilador que a base desse numero é octal, ou seja, pode representar numeros de 0 a 7.

Então você não pode fazer 08 porque vai dar erro.

Quando quiser representar numeros na base decimal apenas escreva sem o zero na frente, exemplo: 1,2,3...etc

Em alguns pontos do seu programa você escreveu if terminando com ';' isso causa erro nos blocos de decisão.

você pode terminar um if com ';', isso não é problema desde que a logica esteja correta.

Por exemplo:

Esse if esta errado:

if ( d==31)
    (d=01, m++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
    else
    (d++);
        printf("A data do proximo dia é: %d/%d/%d", d, m, a);
O correto seria
if ( d==31)
       {
       d=01;
       m++;
       printf("A data do proximo dia é: %d/%d/%d", d, m, a);
       }
    else
       {
       (d++);
       printf("A data do proximo dia é: %d/%d/%d", d, m, a);
       }

Tenta encontrar os outros erros e se precisar de ajuda é só falar.

beautiful solution kkk

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...