Я пытаюсь написать функцию, которая выводит строку из 5 символов из строки конкатенированных простых чисел длиной 1000 символов, начиная с точки (n), указанной пользователем. Я, наконец, получил саму программу для компиляции, но я, похоже, сталкиваюсь с ошибками в самой программе, и нам еще не научили инструменты, которые помогли бы мне увидеть, где моя проблема в моем программировании. Я считаю, что проблема заключается в получении и отображении самого среза, а не в конкатенированной строке ... но опять же, возможно, я ошибаюсь. Любые советы будут очень признательны.Слишком короткий фрагмент строки C++
-Встреча компьютерного обжима. Основные
#include<iostream>
#include<string>
std::string get_concatenated_primes()
{
unsigned int base, test, cap=1000, prime=0;
std::string plist;
for (base=0; base < cap; ++base)
{
for (test=2; test < base; ++test)
{
if (base % test == 0)
break;
else
{
prime=1;
}
}
if (prime == 1 && plist.length() < 1000)
{
plist += base;
}
}
return plist;
}
std::string get_slice_of_5(const std::string concat_primes, const unsigned int n)
{
std::string slice;
slice = concat_primes.substr (n, 5);
return slice;
}
int main()
{
unsigned int n;
while(std::cin >> n)
{
std::string concat_primes = get_concatenated_primes();
std::cout << get_slice_of_5(concat_primes, n) << std::endl;
}
return 0;
}
Добро пожаловать в переполнение стека! Похоже, вам, возможно, потребуется научиться использовать отладчик для выполнения вашего кода. С хорошим отладчиком вы можете выполнить свою программу по очереди и посмотреть, где она отклоняется от ожидаемого. Это важный инструмент, если вы собираетесь заниматься программированием. Дальнейшее чтение: ** [Как отлаживать небольшие программы] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver
Вопросы поиска справки по отладке («why isn» t этот код работает? ») должен включать в себя желаемое поведение ** конкретную проблему или ошибку ** и кратчайший код, необходимый для его воспроизведения – xaxxon
С одной стороны, вы никогда не сбрасываете' prime' обратно на ноль. Вы не проверяете, что 'n' слишком велико. Какие ошибки вы видите? –