2016-04-03 4 views
-4
map <char,int> m; 

map <char, int> :: iterator pos; 

int main() 

{ 

int t,n,i,max; 
string str; 
cin>>t; // testcase 
while(t--) 
{ 
    max=1; 
    cin>>n; 

    for(i=0;i<n;i++) 
    { 
     m[str[i]]=0; 
    } 

    for(i=0;i<n;i++) 
    { 
     cin>>str[i]; 
     m[str[i]]=m[str[i]]+1; 
    } 

    for(i=0;i<n;i++) 
    { 
     if(m[str[i]]>max) 
     { 
      max=m[str[i]]; 
     } 
    } 
    cout<<n-max<<endl; 
} 
return 0; 
} 

Теперь почему этот код дает ошибку времени выполнения каждый раз, когда compiled..I скомпилированы с использованием онлайн-платформы, как на ideone.com пока она дает ту же error..please помощь в отношении к этомупочему следующий код дает ошибку во время выполнения

+0

Подумайте о том, что 'str [i]' делает, когда 'str' пуст. – juanchopanza

+0

Просто дружественный совет, вы можете прочитать эту страницу: [Руководство по заданию] (https://stackoverflow.com/help/how-to-ask), чтобы вы всегда могли быть уверены, что ваши вопросы могут быть легко подотчетны и максимально ясны. Обязательно включите все усилия, которые вы предприняли для устранения проблемы, с которой вы столкнулись, и что произошло при попытке этих исправлений. Также не забывайте свой код и любые сообщения об ошибках! –

+0

Ошибка выполнения во время компиляции кода не происходит, это происходит при запуске кода. Пожалуйста, уточните и включите детали ввода и все, что необходимо для воссоздания ошибки времени выполнения. –

ответ

2

при открытии символа в строке, как это:

str[i] 

, что строка должна иметь длину, по меньшей мере i+1, у вас есть пустая строка.

+0

Извините, что он дает ошибку во время выполнения только тогда, когда n> 20 –

+1

@SAURAVGUPTA не имеет значения, ваша программа недействительна, даже когда n == 1 – Slava

Смежные вопросы