Zahlen von 1 - 100



  • [#include <iostream>
    using namespace std;

    int main ()

    {
    int i;

    for (i = 0 ; i < 100; i++)

    {
    cout << " Das Ergebnis von 1 - 100 ist : " << i << endl;

    }

    return 0;

    }]

    Wie sag ich ihm, das er alle Ergebnisse zusammenrechnen soll? Oder kann man das ganze auch anders in einer Schleife verpacken???

    Vielen Dank 😕



  • Indem du ihm den Auftrag gibt, die einzelnen Werte der Zählvariablen aufzusummieren:

    int sum=0;
    for(i=1;i<=100;++i)//wenn du bis einschließlich 100 zählen willst, nimm <=
      sum+=i;
    cout<<"Summe ist "<<sum<<endl;
    


  • #include <iostream>
    
    int main() {
     int summe = 0;
     for( int i = 1; i <= 100; i++ ) {
      summe += i; // summe = summe + i;
     }
     std::cout << "Summe: " << summe << std::endl;
    

    c++-lernen/logisch denken 🙂



  • Wie würde ein Structogramm dazu aussehen?



  • |---------------------------|
    | 100mal                    |
    | |-------------------------|
    | |sum:=sum+i               |
    |---------------------------|
    |A:sum                      |
    |---------------------------|
    |END                        |
    |---------------------------|
    

    So oder so ähnlich!



  • Kommt schon, bringt mal mehr "Wir-verwirren-die-Einsteiger-weil-sie-zwei-Threads-aufmachen" Vorschläge.

    #include <iostream>
    
    template <int N>
    struct Sum {
      enum { value = N + Sum<N-1>::value };
    };
    
    template <>
    struct Sum<1> {
      enum { value = 1 };
    };
    
    //blub blub
    int main() {
      std::cout<<Sum<100>::value;
    return 0;
    }
    


  • Nein warum den? Warum kompliziert wenns auch einfach geht?



  • GPC schrieb:

    "weil-sie-zwei-Threads-aufmachen"



  • Sascha081088 schrieb:

    Nein warum den? Warum kompliziert wenns auch einfach geht?

    Du weißt aber schon, dass mein Code ne simple Rekursion zur Compile-Zeit ist, oder? Das ist nicht wirklich komplex.



  • Mag schon sein aber für ein Anfänger mag es etwas kompliziert aussehen somal ein Anfänger manche Befehle, Funktionen etc. noch nicht kennt!



  • #include <iostream>
    #include <numeric>
    #include <algorithm>
    using namespace std;
    
    class InkrementierIterator
    {
    	int m_wert;
    
    public:
    	InkrementierIterator(int wert) : m_wert(wert) {}
    	int operator*() const { return m_wert; }
    
    	InkrementierIterator &operator++()
    	{
    		++m_wert;
    		return *this;
    	}
    
    	bool operator!=(const InkrementierIterator &anderer) const
    	{
    		return m_wert != anderer.m_wert;
    	}
    };
    
    int summe(int erster, int letzter)
    {
    	return accumulate(InkrementierIterator(erster), InkrementierIterator(letzter+1), 0, plus<int>());
    }
    
    int main()
    {
    	cout << summe(1, 100) << endl;
        cin.get();
    }
    


  • wie wär's mit

    sumTo(unsigned int limit) 
    {
      return limit*(limit+1)/2
    }
    
    int main()
    {
      cout << sumTo(100);
    }
    

    Oder ist da zu einfach und zu schnell?



  • 😃 👍



  • #include <fstream>
    #include <cstdlib>
    
    int main() {
    	std::ofstream out( "source.cpp" );
    	out << "#include <iostream>" << std::endl
    	 	<< "int main() {" << std::endl
    		<< "	int sum = 0;" << std::endl;
    
    	for( int i = 0; i < 100; i++ ) {
    		out << "	sum = sum";
    		for( int y = 0; y < i + 1; y++ ) {
    			out << " + 1";
    		}
    		out << ";" << std::endl;
    	}
    
    	out << "	std::cout << \"Summe der Zahlen von 1 bis 100 ist gleich:\"" << std::endl
    		<< "		<< sum << std::endl;" << std::endl
    		<< "	return( 0 );" << std::endl
    		<< "}" << std::endl;
    
    	out.close();
    
    	system( "g++ -o calcs source.cpp" );
    	system( "./calcs" );
    }
    
    #include <iostream>
    int main(){std::cout<<5050<<std::endl;return(0);}
    

Anmelden zum Antworten