• Помогите решить задачу:
    "Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, оканчивающееся на 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;
    }
    Но проблема в том, что на выходе получаются числа, не соответствующие условию.Возможно это связано с тем,что в массив хаотично заполняется числами, выгруженными из оперативной памяти.

Ответы 2

  • В задаче не сказано, что нужно вводить количество элементов массива, нужно только написать последовательность чисел, минимальное из которых будет составлять "3", но ничего более.
    • Автор:

      giselle
    • 5 лет назад
    • 0
  • #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;}
    • Автор:

      miles
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years