В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
sabinagamzaeva
sabinagamzaeva
15.05.2020 11:44 •  Информатика

Решить : "напишите программу, которая в последовательности натуральных чисел определяет максимальное число, оканчивающееся на 3. программа получает на вход количество чисел в последовательности, а затем сами числа. в последовательности всегда имеется число, оканчивающееся на 3. количество чисел не превышает 1000. введённые числа не превышают 30 000. программа должна вывести одно число — максимальное число, оканчивающееся на 3." вот то, что у меня получилось [язык программирования c++]: #include #include using namespace std; int main(){ int user_nums[1000]; int first_stage[1000]; int second_stage[1000]; cout < < "enter your numbers: " < < endl; for(int i = 0; i < = 1000; i++){ cin > > user_nums[i]; if(user_nums[i] == 0){ user_nums[i] = 3; break; } else{ continue; } } system("cls"); for(int i = 0; i < = 1000; i++){ if(user_nums[i] < = 30000){ first_stage[i] = user_nums[i]; int ost = first_stage[i] % 10; if(ost == 3){ second_stage[i] = first_stage[i]; } else{ continue; } } else{ continue; } } int max_arr = 0; for(int i = 0; i < = 1000; i++){ if(max_arr < = second_stage[i]){ max_arr = second_stage[i]; } else{ continue; } } cout < < max_arr < < endl; cin.get(); cin.get(); return 0; } но проблема в том, что на выходе получаются числа, не соответствующие условию.возможно это связано с тем,что в массив хаотично заполняется числами, выгруженными из оперативной памяти.

Показать ответ
Ответ:
steamoff
steamoff
05.10.2020 08:15
#include <iostream>
using namespace std;
int main()
{
int n,max;
bool a=false;
cout<<"enter kol-vo numbers:"<<endl;
cin>>n;
if(n<=1000)
{
int arr[n];
cout<< "enter 1 chislo"<<endl;
cin>>arr[0];
max=arr[0];
if(arr[0] % 10==3 && arr[0]<30000)
{
a=true;
for (int i=1;i<n;i++)
{
cout<<"enter "<<(i+1)<<" chislo"<<endl,
cin>>arr[i];
if(arr[i]>30000) {goto b;}
}
for (int i = 0; i < n; ++i) {
if (arr[i] > max && arr[i] % 10==3)
{
max = arr[i];
}
}
}
}
b:
if(a){ cout<<" max chislo okanch na 3: "<< max<<endl; }
return 0;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота