М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Alisa45612
Alisa45612
09.02.2021 00:20 •  Информатика

Программа работает некорректно понять причины. Есть вот такая запись:
public class StudentsPD
{
private String[] array = new String[10];
private int size = 0;

public void addStudent (String str)
{
array[size] = str;
size += 1;
if (size == array.length)
{
String[]newArray = new String[array.length * 2];
for (int i = 0; i < array.length; i++)
{
newArray[i] = array[i];
}
array = newArray;
}
}

и вот такая:

import java.util.Scanner;

public class Main
{
public static void main (String[]args)
{

Scanner read = new Scanner (System.in);

StudentsPD follower = new StudentsPD ();
System.out.println ("Skol'ko ychenikov vvesti?");
int nYch = read.nextInt ();

for (int i = 0; i <= nYch; i++)
{
System.out.println ("input name " + (i));
follower.addStudent (read.nextLine ());
}

если делать ввод количества учеников с клавиатуры ( оставить на месте строчку int nYch = read.nextInt ();), то при запуске последующего цикла программа пишет подряд две строки:
input name 0
input name 1

и соответственно принимает значения начиная со второго, т.е. если пользователь хочет ввести данные для 5 учеников, то программа примет данные только для 4. попытки запускать цикл не от 0, а от 1 ничего не меняют,.

Однако, если убрать строки
System.out.println ("Skol'ko ychenikov vvesti?");
int nYch = read.nextInt ();
и вместо них написать int nYch=5 то программа корректно запрашивает данные для ученика 0, потом для ученика 1 и т.д., т.е. выводит все корректно. Что не так? почему не работает при вводе nYch с клавиатуры также как при задании его значения в теле программы?

👇
Открыть все ответы
Ответ:
almioaistaeva
almioaistaeva
09.02.2021

#include <iostream>

using namespace std;

int main()  {

   int h, m, s, time;    

   

   cin >> h >> m >> s >> time;    

   

   int hour, minute, second;

   

   second = time % 60;

   

   time -= second;

   

   time = time/60;

   

   minute = time % 60 ;

   

   hour = time / 60;

   

   if ( s + second > 60 )  {

           s = (s+second) % 60;

           

           if ( m + minute + 1 > 60 )  {

               m = (m+minute+1) % 60;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h+=hour+1;

               }

               

           } else if( m + minute + 1 == 60 ) {

               m = 0;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h+=hour+1;

               }

               

           } else {

               m = m+minute;

               

               if ( h + hour >= 24 )  {

                   h = (h+hour) % 24;

               } else {

                   h += hour;

               }

           }

               

           

           

       } else if ( s+second == 60 )  {

           s = (s+second) % 60;

           

           if ( m + minute + 1 > 60 )  {

               m = (m+minute+1) % 60;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h+=hour+1;

               }

               

           } else if( m + minute + 1 == 60 ) {

               m = 0;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h +=hour+1;

               }

               

           } else {

               m += minute;

               

               if ( h + hour >= 24 )  {

                   h = (h+hour) % 24;

               } else {

                   h = h + hour;

               }

           }

               

           

       } else {

           s = s+second;

           

            if ( m + minute > 60 )  {

               m = (m+minute) % 60;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h+=hour+1;

               }

               

           } else if( m + minute == 60 ) {

               m = 0;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h += hour+1;

               }

               

           } else {

               m += minute;

               

               if ( h + hour >= 24 )  {

                   h = (h+hour) % 24;

               } else {

                   h += hour;

               }

           }

               

           

       }

       

       cout << h << ":" << m << ":" << s;

}

4,5(40 оценок)
Ответ:
kekmanchik
kekmanchik
09.02.2021

#include <iostream>

using namespace std;

int main()  {

   int h, m, s, time;    

   

   cin >> h >> m >> s >> time;    

   

   int hour, minute, second;

   

   second = time % 60;

   

   time -= second;

   

   time = time/60;

   

   minute = time % 60 ;

   

   hour = time / 60;

   

   if ( s + second > 60 )  {

           s = (s+second) % 60;

           

           if ( m + minute + 1 > 60 )  {

               m = (m+minute+1) % 60;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h+=hour+1;

               }

               

           } else if( m + minute + 1 == 60 ) {

               m = 0;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h+=hour+1;

               }

               

           } else {

               m = m+minute;

               

               if ( h + hour >= 24 )  {

                   h = (h+hour) % 24;

               } else {

                   h += hour;

               }

           }

               

           

           

       } else if ( s+second == 60 )  {

           s = (s+second) % 60;

           

           if ( m + minute + 1 > 60 )  {

               m = (m+minute+1) % 60;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h+=hour+1;

               }

               

           } else if( m + minute + 1 == 60 ) {

               m = 0;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h +=hour+1;

               }

               

           } else {

               m += minute;

               

               if ( h + hour >= 24 )  {

                   h = (h+hour) % 24;

               } else {

                   h = h + hour;

               }

           }

               

           

       } else {

           s = s+second;

           

            if ( m + minute > 60 )  {

               m = (m+minute) % 60;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h+=hour+1;

               }

               

           } else if( m + minute == 60 ) {

               m = 0;

               

               if ( h + hour + 1 >= 24 )  {

                   h = (h+hour+1) % 24;

               } else {

                   h += hour+1;

               }

               

           } else {

               m += minute;

               

               if ( h + hour >= 24 )  {

                   h = (h+hour) % 24;

               } else {

                   h += hour;

               }

           }

               

           

       }

       

       cout << h << ":" << m << ":" << s;

}

4,8(76 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ