2 fragen in C , HILFE BITTE!



  • kann jemand bitte beim lösen diese aufgaben helfen

    1-
    Am Ende des Jahres 1987 hatte Indien 700 Millionen Einwohner, China dagegen 990 Millionen. Die jährliche Wachstumsrate Indiens beträgt 2,4%, die Chinas dagegen 1,4%. Wann hat Indiens Einwohnerzahl die Chinas überholt (unter der Annahme, dass sich die Wachstumsraten nicht ändern)? Schreiben Sie bitte ein Programm, dass die jährlichen Bevölkerungszahlen beider Länder ausgibt, solange, bis China überholt wird!
    ich hab das programm so geschrieben , aber ich bekomme das falsche ergebniss :((

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    int jahr
    int indien = 700;
    int china = 990;
    int i = indien + 2.4/100 * indien;
    int c = china + 1.4/100 * china ;
    if (i>c)
    {
    i = i++;
    c = c++;
    jahr = jahr++;
    
    }
    else
    {
    printf("Indien hat china am %d überholt\n",jahr);
    }
    
    system("PAUSE");
    return 0;
    }
    

    die zweite frage ist zu schwer find ich

    Schreiben Sie bitte ein Programm mit dem Namen "capitals.c", das alle in einem Textstring enthaltenen Großbuchstaben (Zeichen von A bis Z) ausgeben soll. Das Programm soll auch die Anzahl der Großbuchstaben, und auch die Anzahl Zeichen insgesamt ausgeben.
    Man soll den Textstring über die Tastatur eingeben können. Dafür kann man im Programm die Funktion scanf(…) oder gets(…) aus der <stdio.h> verwenden.

    VIELEN DANK IM VORAUS



  • Das Wort "solange" sollte dich eigentlich schon darauf hinweisen, dass du hier eine Schleife benötigst. 💡



  • _matze schrieb:

    Das Wort "solange" sollte dich eigentlich schon darauf hinweisen, dass du hier eine Schleife benötigst. 💡

    ok soll ich jetzt noch variablen hinzufügen ??
    kannst du bitte im code schreiben was du meinst



  • Nein, keine extra Variablen. Du sollst eine Schleife verwenden. Du weißt doch, was eine Schleife ist, oder? Die Aufgabenstellung suggeriert, dass ihr das bereits gelernt habt. Kleiner Tipp: es gibt 3 Arten von Schleifen (for, while, do while). Mach dich bitte schlau, wie diese Schleifen funktionieren und welche du verwenden kannst. Bedenke: du möchtest etwas solange ausführen, bis eine Bedingung erfüllt ist.



  • " i = i++; "?
    Weißt du, was das macht? Nein, denn sonst hättest du es nicht geschrieben. Vielleicht solltest du dir deinen Quelltext mal Zeile für Zeile anschauen und dir überlegen, was genau da passiert. Das liegt nämlich so einiges im Argen.



  • F schrieb:

    " i = i++; "?
    Weißt du, was das macht? Nein, denn sonst hättest du es nicht geschrieben. Vielleicht solltest du dir deinen Quelltext mal Zeile für Zeile anschauen und dir überlegen, was genau da passiert. Das liegt nämlich so einiges im Argen.

    Das addiert 1 zum ergebniss glaube ich , wenn das falsch ist wie ist es richtig dann ?

    soll es 3 schleifen sein ?? ich verstehe es nicht warum niemand möchte klare lösung geben ??



  • silver_knight1 schrieb:

    Das addiert 1 zum ergebniss glaube ich , wenn das falsch ist wie ist es richtig dann ?

    Nein, das ist undefiniert, weil auf beiden Seiten des Gleichheitszeichen i verändert wird.
    Am einfachsten für dich sollte i = i + 1; sein

    silver_knight1 schrieb:

    soll es 3 schleifen sein ?? ich verstehe es nicht warum niemand möchte klare lösung geben ??

    Du sollst dir einen Schleifentyp aussuchen.

    Bsp: Es gibt Autos, Motorräder und LKWs.
    Du willst Möbel transportieren.
    Was nimmst du? Alles 3 oder gehst du zu Fuß (das machst du gerade)?



  • ich habe die lösung jetzt so formuliert
    ich habe aber keine lösung bekommen

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    int jahr =1987;
    int indien=700;
    int china = 990;
    int i = indien + 2.4/100 * indien;
    int c = china + 1.4/100 * china ;
    {
    if (i<c)
    {
    i=indien*1.024;
    c=china*1.014;
    jahr = jahr+1; 
    }
    else
    {
    printf("Indien hat china am %d ueberholt\n",jahr);
    }
    }
    
    system("PAUSE");
    return 0;
    }
    

    gibts ideen??



  • Ja, die wurden auch schon genannt.

    Wie ist dein Startjahr und wie lautet dein Endjahr?

    "1987 und 1988"

    Oh, da hast du ja genau einmal weitergerechnet.

    Das muss aber öfter geschehen.

    Das musst du solange* wiederholen bis i<c ist.

    * das solange ist en Link zum anklicken.



  • DirkB schrieb:

    Ja, die wurden auch schon genannt.

    Wie ist dein Startjahr und wie lautet dein Endjahr?

    "1987 und 1988"

    Oh, da hast du ja genau einmal weitergerechnet.

    Das muss aber öfter geschehen.

    Das musst du solange* wiederholen bis i<c ist.

    * das solange ist en Link zum anklicken.

    das problem ist dass das ende jahr gesucht ist und wenn ich zB. eine schleife hinzufügen möchte weiss ich nicht wieveil so ich drinn schreiben zB jahr[????]
    das andere problem weiss ich nicht genau ob ich in for schleife so schreiben muss for (jahr=1987;jahr>?????;jahr++ ) ??? wie soll es sein damit ich das richtige ergebniss bekomme 😕



  • Hast du mal den Link von solange verfolgt. Der 3 Vorschlag sollte dich weiterbringen.

    Es gibt nicht nur Zählschleifen.



  • DirkB schrieb:

    Hast du mal den Link von solange verfolgt. Der 3 Vorschlag sollte dich weiterbringen.

    Es gibt nicht nur Zählschleifen.

    ich habe verstanden dass das ergebnis wie eine liste aussehen muss. in der wird die jährlichen bevölkerungszahlen gezeigt ...



  • #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
    int jahr =1987;
    int indien=700;
    int china = 990;
    int i = indien + 2.4/100 * indien;
    int c = china + 1.4/100 * china ;
    {
    if (i<c)
    {
    i=indien*1.024;
    c=china*1.014;
    jahr = jahr+1;
    }
    else
    {
    printf("Indien hat china am %d ueberholt\n",jahr);
    }
    }
    
    system("PAUSE");
    return 0;
    }
    

    Das beste ist, du stellst dir erstmal folgende Fragen:

    1. Was ist "int" für ein Datentyp? Welche Zahlen können in "int" gespeichert werden? Mache dir dabei Gedanken über deine Berechnungen (Zeile 9 und 10) bzw. das Ergebnis dieser.

    2. Was soll sich genau wiederholen und was soll dabei jedes mal verändert werden? Wie lange soll sich jenes wiederholen?

    3. Lieben Fragezeichen wirklich das Kuscheln mit gleichgesinnten?



  • silver_knight1 schrieb:

    DirkB schrieb:

    Hast du mal den Link von solange verfolgt. Der 3 Vorschlag sollte dich weiterbringen.

    Es gibt nicht nur Zählschleifen.

    ich habe verstanden dass das ergebnis wie eine liste aussehen muss. in der wird die jährlichen bevölkerungszahlen gezeigt ...

    Warum so beratungsresistent? Du hast bislang sämtliche Tipps ignoriert. Versuch doch bitte einfach mal, dein Problem mit einer Schleife zu lösen (z.B. while -Schleife). Es ist nicht schwierig. Du musst es halt einfach mal versuchen. Eine fertige Lösung wirst du hier nicht bekommen, aber wertvolle Hilfestellung, sobald du ein wenig Eigeninitiative zeigst.


Anmelden zum Antworten