Ir ao conteúdo

Qual o erro no programa


Ingrid Cordeiro

Posts recomendados

Postado

Alguém pode me ajudar a achar o erro desse programa??

#include <stdio.h>

#include <stdlib.h>

main()

{

int janeiro=marco=maio=julho=agosto=outubro=dezembro=31;

int abril=junho=setembro=novembro=30;

int fev1,fev2,total;

int dia1,mes1,ano1,data1,dia2,mes2,ano2,data2;

printf("Entre com data1:/n");

scanf ("%d-%d-%d";&dia1,&mes1,&ano1);

printf("Entre com data2:/n");

scanf ("%d-%d-%d";&dia2,&mes2,&ano2);

if(mes1==02);if((ano1%100!=0)&&ano1%4==0);

if(ano1%100==0&&ano1%400==0)

printf("Ano da data1 é bissexto");

fev1=29;

printf("Nao é bissexto");

fev1=28;

if(mes1==janeiro);

data1=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;

if(mes1==fevereiro);

data1=fevereiro+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;

if(mes1==marco);

data1=marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;

if(mes1==abril);

data1=abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;

if(mes1==maio);

data1=maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;

if(mes1==junho);

data1=junho+julho+agosto+setembro+outubro+novembro+dezembro;

if(mes1==julho);

data1=julho+agosto+setembro+outubro+novembro+dezembro;

if(mes1==agosto);

data1=agosto+setembro+outubro+novembro+dezembro;

if(mes1==setembro);

data1=setembro+outubro+novembro+dezembro;

if(mes1==outubro);

data1=outubro+novembro+dezembro;

if(mes1==novembro);

data1=novembro+dezembro;

if(mes1==dezembro);

data1=dezembro;

data1=data1-dia1;

if(mes2==02);if((ano2%100!=0)&&ano2%4==0);

if(ano2%100==0&&ano2%400==0)

printf("Ano da data2 é bissexto");

fev2=29;

printf("Nao é bissexto");

fev2=28;

if(mes2==janeiro);

data2=0;

if(mes2==fevereiro);

data2=janeiro;

if(mes2==marco);

data2=janeiro+fevereiro;

if(mes2==abril);

data2=janeiro+fevereiro+marco;

if(mes2==maio);

data2=janeiro+fevereiro+marco+abril;

if(mes2==junho);

data2=janeiro+fevereiro+marco+abril+maio;

if(mes2==julho);

data2=janeiro+fevereiro+marco+abril+maio+junho;

if(mes2==agosto);

data2=janeiro+fevereiro+marco+abril+maio+junho+julho;

if(mes2==setembro);

data2=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto;

if(mes2==outubro);

data2=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto+setembro;

if(mes2==novembro);

data2=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto+setembro+outubro;

if(mes2==dezembro);

data2=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro;

data2=data2-dia2;

total=data1+data2;

printf("/n O numero de dias totais é %d /n",total);

system("pause");

}

Postado
int janeiro=marco=maio=julho=agosto=outubro=dezembro=31;

int abril=junho=setembro=novembro=30;

1 - Em C não se faz assim...

tente assim:

int janeiro, marco, maio, julho, agosto, outubro, dezembro;
janeiro=31; marco=31; maio=31; julho=31; agosto=31; outubro=31; dezembro =31;

scanf ("%d-%d-%d";&dia1,&mes1,&ano1);

2 - A sintaxe da scanf não é essa. no lugar de ; deveria ter usado uma , assim:

scanf ("%d-%d-%d" , &dia1,&mes1,&ano1);

3 - Você não declarou fevereiro em momento algum, mas está usando...

4 - tem um espaço no meio das linhas exemplo:

[COLOR=Black]data1=abril+maio+junho+julho+agosto+setembro+[I]outub  ro[/I]+novembro+dezembro;
Aqui /\[/COLOR]

Isso está gerando erros.

Código corrigido, declare fevereiro, não tenho tempo para entender seu programa e declarar essa variável de maneira correta...

#include <stdio.h>
#include <stdlib.h>
main()
{
int janeiro, marco, maio, julho, agosto, outubro, dezembro;
janeiro=31; marco=31; maio=31; julho=31; agosto=31; outubro=31; dezembro =31;
int abril=30; int junho=30; int setembro=30; int novembro=30;

int fev1,fev2,total;
int dia1,mes1,ano1,data1,dia2,mes2,ano2,data2;
printf("Entre com data1:/n");
scanf ("%d-%d-%d",&dia1,&mes1,&ano1);
printf("Entre com data2:/n");
scanf ("%d-%d-%d",&dia2,&mes2,&ano2);
if(mes1==02);if((ano1%100!=0)&&ano1%4==0);
if(ano1%100==0&&ano1%400==0)
printf("Ano da data1 é bissexto");
fev1=29;
printf("Nao é bissexto");
fev1=28;
if(mes1==janeiro);
data1=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==fevereiro);
data1=fevereiro+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==marco);
data1=marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==abril);
data1=abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==maio);
data1=maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==junho);
data1=junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==julho);
data1=julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==agosto);
data1=agosto+setembro+outubro+novembro+dezembro;
if(mes1==setembro);
data1=setembro+outubro+novembro+dezembro;
if(mes1==outubro);
data1=outubro+novembro+dezembro;
if(mes1==novembro);
data1=novembro+dezembro;
if(mes1==dezembro);
data1=dezembro;
data1=data1-dia1;
if(mes2==02);if((ano2%100!=0)&&ano2%4==0);
if(ano2%100==0&&ano2%400==0)
printf("Ano da data2 é bissexto");
fev2=29;
printf("Nao é bissexto");
fev2=28;
if(mes2==janeiro);
data2=0;
if(mes2==fevereiro);
data2=janeiro;
if(mes2==marco);
data2=janeiro+fevereiro;
if(mes2==abril);
data2=janeiro+fevereiro+marco;
if(mes2==maio);
data2=janeiro+fevereiro+marco+abril;
if(mes2==junho);
data2=janeiro+fevereiro+marco+abril+maio;
if(mes2==julho);
data2=janeiro+fevereiro+marco+abril+maio+junho;
if(mes2==agosto);
data2=janeiro+fevereiro+marco+abril+maio+junho+julho;
if(mes2==setembro);
data2=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto;
if(mes2==outubro);
data2=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto+setembro;
if(mes2==novembro);
data2=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto+setembro+outubro;
if(mes2==dezembro);
data2=janeiro+fevereiro+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro;
data2=data2-dia2;
total=data1+data2;
printf("/n O numero de dias totais é %d /n",total);
system("pause");
}

Postado

Olá Ingrid, seu programa ainda contem erros de lógica, mas eu fiz algumas modificoes para que ele ao menos compile e voce possa verificar os erros e corrigir os mesmos.

espero que lhe ajude...

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

main()
{
int janeiro,
marco,
maio,
julho,
agosto,
outubro,
dezembro;


janeiro=marco=maio=julho=agosto=outubro=dezembro=31;


int abril,
junho,
setembro,
novembro;


abril=junho=setembro=novembro=30;


int fev1,
fev2,
total;
int dia1,
mes1,
ano1,
data1,
dia2,
mes2,
ano2,
data2;

printf("Entre com data1:\n");//o codigo para nova linha e \n
scanf ("%d %d %d",&dia1,&mes1,&ano1);
printf("Entre com data2:\n");
scanf ("%d %d %d",&dia2,&mes2,&ano2);

printf ("dia mes ano %d %d %d", dia1, mes1, ano1);

printf ("dia mes ano %d %d %d", dia2, mes2, ano2);
fev1=28;
if(mes1==2){
if((ano1%100!=0)&&ano1%4==0){
printf("Ano da data1 é bissexto");
fev1=29;
data1=fev1+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
}else{
printf("Nao é bissexto");
fev1=28;
data1=fev1+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
}
}
//você não poderia utilizar um switch ao invés destes ifs?

if(mes1==1)//porque você colocou ; depois do if??
data1=janeiro+fev1+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;

if(mes1==3)
data1=marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==4)
data1=abril+maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==5)
data1=maio+junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==6)
data1=junho+julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==7)
data1=julho+agosto+setembro+outubro+novembro+dezembro;
if(mes1==8)
data1=agosto+setembro+outubro+novembro+dezembro;
if(mes1==9)
data1=setembro+outubro+novembro+dezembro;
if(mes1==10)
data1=outubro+novembro+dezembro;
if(mes1==11)
data1=novembro+dezembro;
if(mes1==12)
data1=dezembro;

data1=data1-dia1;


if(mes2==2){
if((ano2%100!=0)&&ano2%4==0){
if(ano2%100==0&&ano2%400==0){//se voce utlizar mais de uma intrução
//após o if precisa por chaves pra delimitar
//o bloco
printf("Ano da data2 é bissexto");
fev2=29;
data2=janeiro;
}
}
else{

printf("Nao é bissexto");
fev2=28;
data2=janeiro;
}
}

if(mes2==1)
data2=0;

if(mes2==3)
data2=janeiro+fev2;//fev2 no lugar de fevereiro
if(mes2==4)
data2=janeiro+fev2+marco;
if(mes2==5)
data2=janeiro+fev2+marco+abril;
if(mes2==6)
data2=janeiro+fev2+marco+abril+maio;
if(mes2==7)
data2=janeiro+fev2+marco+abril+maio+junho;
if(mes2==8)
data2=janeiro+fev2+marco+abril+maio+junho+julho;
if(mes2==9)
data2=janeiro+fev2+marco+abril+maio+junho+julho+agosto;
if(mes2==10)
data2=janeiro+fev2+marco+abril+maio+junho+julho+agosto+setembro;
if(mes2==11)
data2=janeiro+fev2+marco+abril+maio+junho+julho+agosto+setembro+outubro;
if(mes2==12)
data2=janeiro+fev2+marco+abril+maio+junho+julho+agosto+setembro+outubro+novembro;

data2=data2-dia2;

printf("\n data1: %d",data1);
printf("\n data2: %d",data2);
total=data1+data2;

printf("\n O numero de dias totais é: %d",total);//colocar o & faz com que seja
//passado o endereço e nao o valor de total
char x;
x = getch();
system("PAUSE");
}

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!