Jak rozjet funkci na export dat – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak rozjet funkci na export dat – C / C++ – Fórum – Programujte.comJak rozjet funkci na export dat – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
oxidián0
Grafoman
28. 7. 2017   #1
-
0
-

  Data:

double DaysEarthSun[][10] ={
//            0                                                         1                       2                       3                       4                       5                       6                       7                       8                       9
//          JDTDB,            Calendar Date (TDB),                      X,                      Y,                      Z,                     VX,                     VY,                     VZ,                     LT,                     RG,                     RR,
{2305447.500000000, /*"A.D. 1600-Jan-01 00:00:00.0000",*/ -2.568497981915648E-01,  9.438245451677045E-01,  6.410938668761658E-04, -1.684598702834566E-02, -4.667597482526307E-03, -4.906040833845624E-06,  5.649322014152373E-03,  9.781497849989120E-01, -8.026158042429985E-05},
{2305448.500000000, /*"A.D. 1600-Jan-02 00:00:00.0000",*/ -2.736541829631095E-01,  9.390104932363517E-01,  6.360724040092633E-04, -1.676196451434489E-02, -4.960286450217222E-03, -5.142448255071298E-06,  5.648881285390255E-03,  9.780734751792867E-01, -7.236940265538736E-05}
}

Funkce:

#define foreach(item, array) \
    for(int keep = 1, \
            count = 0,\
            size = sizeof (array) / sizeof *(array); \
        keep && count != size; \
        keep = !keep, count++) \
      for(item = (array) + count; keep; keep = !keep)

void printSOE(){
    // double * soe;
    double distance, velocity, km, km_2, speed;
    FILE *f;
    foreach(double *soe, DaysEarthSun) {
        // soe = DaysEarthSun[*v];
        distance = sqrt( soe[1]*soe[1] + soe[2]*soe[2] + soe[3]*soe[3] ); // units: AU-D
        velocity = sqrt( soe[4]*soe[4] + soe[5]*soe[5] + soe[6]*soe[6] ); // units: AU-D
        km = (149597870.700*distance); // km/day
        speed = (149597870.700*velocity); // km/day
        km_2 = 25902068370*soe[7]; // E-S distance: light day to km
        printf("\n\n%f km , %f km/day\n", km, speed);
        printf("distance based on light: %f km/day\n\n", km_2);
        f = fopen("output.txt", "a");
        fprintf(f, "%f, %f,", km, speed );
    }
    fclose(f);
}

warning: initialization from incompatible pointer type [enabled by default]|
Tím se odkazuje na foreach(double *soe, DaysEarthSun) {
soe má být řádek s daty; makro má nahradit foreach(array => item)

Pole DaysEarthSun jsem původně přiřadil tomu double * soe a bez foreach to fungovalo, ale když jsem to dal dovnitř foreach tak už to hlásí tuhle hlášku.
 

Edit:

Ta chyba souvisí s double *soe, původně tam bylo int *soe ale to taky nepomohlo.

Nahlásit jako SPAM
IP: 78.102.61.–
gna
~ Anonymní uživatel
1874 příspěvků
28. 7. 2017   #2
-
0
-

   

foreach (double (*soe)[10], DaysEarthSun) {
	... (*soe)[0]
}
Nahlásit jako SPAM
IP: 213.211.51.–
oxidián0
Grafoman
29. 7. 2017   #3
-
0
-

#1 oxidián
 

#define foreach(item, array) \
    for(int keep = 1, \
            count = 0,\
            size = sizeof (array) / sizeof *(array); \
        keep && count != size; \
        keep = !keep, count++) \
      for(item = (array) [count]; keep; keep = !keep)
Nahlásit jako SPAM
IP: 78.102.61.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 26 hostů

Podobná vlákna

Export dat do excelu — založil Láda

Export dat z excelu — založil xJakubS

Export dat z localhostu — založil Sopta

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý