Debug Assertion Failed!



  • Hallo,
    ich bin durch diesen Beitrag auf die Idee gekommen, meine eigene Lösung für das Project Euler Problem 22 zu schreiben.
    Ich hoffe jemand hat Lust sich meinen Code anzuschauen 🙂

    Nur leider bekomme ich einen Laufzeitfehler 😞 das sind immer die Schlimmsten...
    Der Code:

    #include <iostream>
    #include <string>
    
    int main()
    {
    	std::string list[] = 
    	{
    		#include "names.txt"
    	};
    
    	int result = 0;
    	const char letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	long temp = 0;
    	std::string str_temp;
    
    	for(int i = 0; i < (sizeof(list)/sizeof(list[0])); i++)
    	{
    		for(int j = 0; j < (sizeof(letters)/sizeof(letters[0])); j++)
    		{
    			str_temp = list[i];
    			if(str_temp[i] == letters[j])
    				temp += ++j;
    		}
    		temp *= ++i;
    		result += temp;
    	}
    
    	std::cout<<result<<std::endl;
    
    	return 0;
    }
    

    Der Fehler(habe es mal hochgeladen weil es sonst zu viel Tipparbeit gewesen wäre 😉 :
    Klick

    Leider habe ich überhaupt keine Ahnung, was es für ein Fehler seien könnte und dank der langen for-Schleifen bringt mir der Debugger überhaupt nichts(oder doch?) 😞

    Gruß Speedy_92

    PS: Schade, dass man in diesem Forum keine Bilder hochladen kann.



  • str_temp = list[i]; // sei i 500 (also der 500. Name in der Liste)
    if(str_temp[i] == letters[j]) // versuchst Du bei str_temp auf den 500. Buchstaben zuzugreifen
    

    Ich glaube Dir fehlt auch noch vorher die Sortierung der Namen.



  • ups... Danke
    Ein kleiner Flüchtigkeitsfehler 😉



  • *Müll geschrieben*



  • Du inkrementierst doch i an 2 Stellen, dadurch überspringst Du doch die hälfte der Namen.



  • Ich glaube die Uhrzeit macht mir zu schaffen! Vielen Dank.


Anmelden zum Antworten