Member 12817247 Ответов: 2

Может ли оператор return быть ittarted?


это то, что я пытался найти все номера Армстронга в диапазоне, но его возвращение только первое нет. или если оператор return не находится в lop, то возвращает только последнее no.

Что я уже пробовал:

#include<iostream>
using namespace std;
int arm(){
    int x=0,sum,temp,i,a[100]={0};
  for(i=1;i<=500;i++){
    temp=i;
    sum=0;
    while(temp!=0){
        sum=sum+(temp%10)*(temp%10)*(temp%10);
        temp=temp/10;
    }
    if(sum==i){
        for(int l=0;l<=i;l++){
            a[l]=i;
            return a[l];
            
        }

    }


  }

}
int main(){

cout<<arm();

}

Member 12817247

помогите мне, ребята.

Patrice T

Если вы торопитесь, попробуйте оплатить услуги.

2 Ответов

Рейтинг:
20

OriginalGriff

Цитата:
помогите мне, ребята.

Что ж... посмотрите на свой код.
Где return заявление?
Просто: это в вашем for петля! Таким образом, он делает первый элемент в массиве, а затем сразу же выходит из функции: вот что return есть ли для этого: немедленно выйти из функции без какой-либо дальнейшей обработки.

Предположим, вы либо хотите изменить функцию, чтобы она возвращала массив целых чисел, и напечатать их в своей основной функции, либо напечатать значения вместо использования return.
Лично я бы вернул массив в конце функции и позволил main обрабатывать его печать. Таким образом, вы можете повторно использовать эту функцию позже для других целей, если вам это нужно. (Это также называется " принципом единой ответственности")


Рейтинг:
2

Patrice T

Когда return выполняется, он завершает текущую рутину, независимо от ее положения.
Чтобы вернуть более 1 значения, вы должны вернуть что-то вроде массива (или указателя).

Даже если вы уберете возврат с его места, я боюсь, что ваш код не будет делать то, что вы ожидаете.

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.