Programowanie w C, początki

0

Na studiach dopiero zaczynam naukę programowania. Wcześniej, ani w gimnazjum, ani w liceum programowania nie miałem i mam problem z takim bardzo prostym zadaniem. Wiem, że zadanie jest proste ale nie chce mi coś wyjść a na innych forach naprowadzają mnie bardzo ogólnikowo. Zadanie brzmi:
Zakładajac, ze od poczatku naszej ery obowiazywał kalendarz gregorianski
(co, prawde mówiac, nie jest prawda), napisz funkcje, która wylicza ile
dni mineło od poczatku ery, do podanej daty. Napisz program, który obliczy ile
dni mineło od daty Twoich urodzin do dnia dzisiejszego. Przelicz to na sekundy.

Najmilej widziany cały napisany program i wyjaśnienie co do czego. Z góry dziękuje.

0

Masz problem z matematycznym zapisem funkcji czy jej zapisem w C ?

0
BK napisał(a)

Masz problem z matematycznym zapisem funkcji czy jej zapisem w C ?

Zapisem w C

0

To pokaż co juz masz, np. wyprowadzony matematyczny wzór i pomozemy za darmo. Jeśli chcesz zeby ktoś od początku do końca to za ciebie napisał to zapomnij, albo płać.

0

No w sumie funkcję matematyczną też zbytnio nie wiem jak napisać. Jedynie co spróbowałem zrobić to coś takiego:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    float d,r;
    int i,ii;
    int miesiac[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    r=r++;

    printf("Proszę wpisać rok:");
    scanf("%f", &r);
    printf("Proszę wpisać miesiac:");
    scanf("%f", &miesiac);
    printf("Proszę podać dzień:");
    scanf("%f",&d);
    for(i=0;i<r;i++)
    {
        if((i%4==0)&&!(i%100==0)||(i%400==0))
        {
            miesiac[1]+=1;
            for(ii=0;ii<12;ii++)
            {
                d=d+miesiac[ii];
                d=d+1;
            }
        }
        else
        {
            for(ii=0;ii<12;ii++)
            {
                d=d+miesiac[ii];
            }
        }
    }
    printf("Wynik w dniach: %f",d);
}

Ale niestety nie działa... Kompiluje mi się, ale po wpisaniu wszystkich danych po prostu consola się wyłącza. Nie wiem jeszcze do końca jak mogę korzystać z tablic. Może jest jakiś sposób rozwiązania bez tablic?

0

Nie analizowałem kodu, ale na pierwszy rzut brakuje return

#include<iostream> //gdy korzystasz z system("pause")
...
int main()
{
  ...
  system("pause"); //opcjonalnie
  return 0;
}

natomiast

a=a+b //mozna a+=b
a=a+1 //mozna a++

%f odnosi się do liczb zmiennoprzecinkowych, a dzien, miesiac i rok sa naturalnymi liczbami, więc użyj %d (i typ zmiennych int)

0
vecco napisał(a)

#include<iostream> //gdy korzystasz z system("pause")

[rotfl] [rotfl] [rotfl]

System pochodzi z cstdlib.

Niejawne włączanie jednego nagłówka biblioteki standardowej przez drugi to cecha konkretnej implementacji, coś czego wykorzystywać po prostu nie wolno.

0

Ekhm, przepraszam, nie doczytałem... Vecco, wątek dotyczy C, gdzie Ty streamy z C++ wpychasz?

0

Wypociłem coś takiego

#include<stdio.h>
#include<stdlib.h>
#define DNIE 365
int main()
{

int d,m,r;
int LUTY;
int rok;
int suma=0;
int i, dni=0;
int x; //zmienna mająca za zadanie wyłonić dni przestępne
x=((r-1)/4);
printf("Prosze podac rok:");
scanf("%d",&r);
printf("Prosze podac miesiac:");
scanf("%d",&m);
printf("Prosze podac dzien:");
scanf("%d",&d);
rok=(((r-1)*DNIE)+((r-1)/4));
int miesiace[12]={31,28,31,30,31,30,31,31,30,31,30,31};
m=m-1;
if((r%4==0)&&!(r%100==0)||(r%400==0))
miesiace[1]+=1;

for(i=0,i<12,i++)
suma=suma+miesiace[i];

printf("Wynik w dniach: %d\n",rok+suma+d);

system("PAUSE");
return 0;

}

Ale wyskakuje mi błąd w linijce 26 tam gdzie zrobiłem pętle "syntax error before ')' token". W czym może tkwić problem?

0

for(i=0,i<12,i++)
o_O
for w składni ma średniki ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0