Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » HILFE!!!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
30.05.2007, 15:52 Uhr
~24karatboy
Gast


ich hab mir das so gedacht sebaesel 4%2 ergibt 0 also soll das nicht dazu gerechnet werden also habe jetzt einstatt "/" den modulo operator "%" benutzt aber das programm läuft ja grundsätzlich nicht es passiert nichts die logik ist mir klar hat mir auhc weiter geholfen was ihr hier gesagt habt aber ich frage mich wieso das prog nicht läuft auch wenn ein falsches ergebnis kommt. hier nochmal der neue code für dich:


Code:
#include <stdio.h>

unsigned int x,i,zahl2,zahl=1;

main() {
    for (i=1; i=100; i++){
        zahl2 = i % 2;
        if (zahl2 != 0)
        zahl = zahl + i;
    }
    printf("Ergebnis: %i", zahl);
    getchar();
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
30.05.2007, 16:04 Uhr
xXx
Devil


Hmm kenne mich mit C nicht aus ... sry ... aber ist ja im Prinzip gleich ... aja ... dein Fehler ist das du i = 100 nimmst ... also nicht vergleichst sondern zuweißt

C++:
#include <stdio.h>

int main()
{
    unsigned short result = 0;
    for (unsigned short i = 2; i <= 100; ++i)
        if ((i % 2) != 0)
            result += i;

    printf("Ergebnis: %d", result);
    getchar();
}

Dieser Post wurde am 30.05.2007 um 16:05 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
30.05.2007, 16:07 Uhr
ao

(Operator)



C++:
main() {
    for (i=1; i < 100; i++)   /* <<<<----- i < 100 */
    {
         /* ..... */
    }
}



Dann klappts auch mit der Schleife.

ao

Dieser Post wurde am 30.05.2007 um 16:08 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
30.05.2007, 16:08 Uhr
~24karatboy
Gast


genau das habe ich gesucht jetzt habe ich mal alle werte von 1 bis 100 die ungerade sind addiert per hand in nem taschenrechner und da kam 2500 raus bei mir kommt allerdings 2501 der addiert irgendwas falsch dazu ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
30.05.2007, 16:09 Uhr
xXx
Devil


nöö ... hast du es so gemacht wie ich geschrieben hab? Bei deinem Code ist auch falsch das du bei 1 und nicht bei 0 anfängst ... (also das du zahl mit 1 initialisierst) ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
30.05.2007, 16:12 Uhr
ao

(Operator)


Wie viele ungerade Zahlen gibt es zwischen 1 und 100? 50 Stück. Wenn man 50 ungerade Zahlen addiert, kann das Ergebnis nur gerade sein. Bloß mal so n kleiner Denkanstoß.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
30.05.2007, 16:12 Uhr
~24karatboy
Gast


so jetzt habe ich das ergebnis was ich haben wollte ich danke vielmals für eure hilfe danke sehr jeder war mal anfänger
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
30.05.2007, 16:29 Uhr
~24karatboy
Gast


jetzt habe ich das prog so modifiziert das er nur soviele ungeradern zahlen addiert von 1 an wie ich im sage

wenn ich dann sagen wir 3 sage sollte 9 rauskommen kommt auch

wenn ich sage 10 sollte 149 rauskommen stimmt leider nicht

vielelicht noch ne kleine hilfe? wäre sehr nett.


Code:
#include <stdio.h>

unsigned int x,i,zahl2,zahl=0,n,b;

main() {
    printf("Bitte geben Sie ein wieviele ungeraden zahlen von 1 an addiert werden soll: ");
    scanf("%i",&n);

    for (i=1; i < 100; i++){
        zahl2 = i % 2;
        if (zahl2 != 0){
        b++;
        zahl = zahl + i;
        }
        if     (b==n)
            break;
    }
    printf("Ergebnis: %i", zahl);
    getchar();
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
30.05.2007, 16:52 Uhr
0xdeadbeef
Gott
(Operator)


Nur so am Rande, wie wärs damit, nur die ungeraden Zahlen überhaupt abuzuarbeiten?

C++:
#include <iostream>

int main() {
  int summe = 0;

  for(int i = 1; i < 100; i += 2) {
    summe += i;
  }

  std::cout << i << std::endl;
}


Beziehungsweise

C++:
#include <iostream>

int main() {
  int summe = 0, num;

  std::cout << "Wie viele ungerade Zahlen von 1 an sollen addiert werden? " << std::flush;
  std::cin << num;

  for(int i = 0; i < num; ++i) {
    summe += i * 2 + 1;
  }

  std::cout << i << std::endl;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
30.05.2007, 17:10 Uhr
xXx
Devil


@0xdeadbeef: hmm num mit 0 initialisieren und dann >> anstelle von << bei std::cin nutzen ... ja ja ich weißt ... nurn Tippfehler

Aber das 1. stimmt ... einfach überspringen wäre wohl etwas performanter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: