[solved][c]prosba o sprawdzenie kodu

rahl

[solved][c]prosba o sprawdzenie kodu

Post autor: rahl »

witam,
chce napisac program ktory liczy ilosc uplynietych dni od podanej daty. moja niedzialajaca wersja wyglada tak:

Kod: Zaznacz cały

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

int main()
{
    int miesiace[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int urdzien, urmiesiac, urrok, suma, i, obrok, obdzien, obmiesiac; // ur od urodzenia, ob od obecny Smile
    suma=0;

    printf("podaj dzien swoich urodzin: \n");
    scanf("%d", &urdzien);
    printf("podaj miesiac swoich urodzin: \n");
    scanf("%d", &urmiesiac);
    printf("podaj rok swoich urodzin: \n");
    scanf("%d", &urrok);

    if(urmiesiac==1||urmiesiac==3||urmiesiac==5||urmiesiac==7||urmiesiac==8||urmiesiac==10||urmiesiac==12)
    suma = 31-urdzien;
    else
    {
         if(urmiesiac==4||urmiesiac==6||urmiesiac==9||urmiesiac==11)
         suma = 30-urdzien;
         else
         suma = 28-urdzien;
    }


    for(i=urmiesiac+1;i<=12;i++)
    suma += miesiace[i];



    printf("podaj dzisiejszy dzien: \n");
    scanf("%d", &obdzien);
    printf("podaj dzisiejszy miesiac: \n");
    scanf("%d", &obmiesiac);
    printf("podaj dzisiejszy rok: \n");
    scanf("%d", &obrok);

    suma += (obrok-urrok-1)*366;

    for(i=1;i<obmiesiac;i++)
    suma += miesiace[i];

    suma += obdzien;

    printf("ilosc dni jaka uplynela od twoich urodzin: %d\n", suma);


    system("pause");
    return 0;
}
problem tkwi w tym, ze jak wpisze np kolejno 1, 1, 6,1,1,7, to wychodzi mi strasznie duza liczba i nie zabardzo wiem dlaczego. wydaje mi sie ze cos w petlach z miesiacami namieszalem, bo np dla 'stycznia' wypisuje glupoty, a dla np grudnia jest ok.

z gory dzieki wielkie za pomoc

edit: juz wiem w czym tkwi problem: w petli for zamiast i ma byc i bo przeciez tablice sie numeruje od 0 nie od 1 :)
Zablokowany