
Doriris
5 год назад
Пожалуйста посчитайте решить задачу:"Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, оканчивающееся на 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 3. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — максимальное число, оканчивающеесяна 3."Вот то, что у меня получилось [Язык программирования C++]:#include <iostream>#include <cstdlib>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;}Но проблема в том, что на выходе получаются числа, не соответствующие условию.Возможно это связано с тем,что в массив хаотично заполняется числами, выгруженными из оперативной памяти.
ОТВЕТЫ

Harris Erick
Oct 24, 2020
#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;
}
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;
}
660
Смежные вопросы: