Как ввести n чисел в c найти

Hello Everyone!

In this tutorial, we will learn how to Sum of n numbers entered by the user, in the C++ programming language.

Code:

#include <iostream>
using namespace std;

int main()
{
    cout << "nnWelcome to Studytonight :-)nnn";
    cout << " =====  Program to find the Sum of n numbers entered by the user ===== nn";

    //variable declaration
    int n,i,temp;

    //As we are dealing with the sum, so initializing with 0.
    int sum = 0;

    //taking input from the command line (user)
    cout << " Enter the number of integers you want to add : ";
    cin >> n;
    cout << "nn";

    //taking n numbers as input from the user and adding them to find the final sum
    for(i=0;i<n;i++)
    {
        cout << "Enter number" << i+1 << " :  ";
        cin >> temp;
        //add each number to the sum of all the previous numbers to find the final sum
        sum += temp;
    }
    
    cout << "nnSum of the " << n << " numbers entered by the user is : "<< sum << endl;
    cout << "nnn";

    return 0;
}

Output:

C++ adding n numbers entered by the user.

Now let’s see what we have done in the above program.

Program Explained:

Let’s break down the parts of the code for better understanding.

//taking n numbers as input from the user and adding them to find the final sum
for(i=0; i<n ;i++)
{
    cout << "Enter number" << i+1 << " :  ";
    cin >> temp;
        
    //add each number to the sum of all the previous numbers to find the final sum
    sum += temp;
}

One thing to learn from this code is that, when we don’t have to make use of the individual elements entered by the user, there is no need to create and array or any such data structre to store them as this would just lead to wasteage of space.

For example, in the above code, as we need to find the sum of all the numbers, we are taking each of the number entered by the user into the same variable and addiing it to the sum variable and then again making use of that same variable again for the next number and so on.

Keep Learning : )



0 / 0 / 0

Регистрация: 26.09.2018

Сообщений: 5

1

Ввести заданное количество чисел с клавиатуры и определить максимальное из них

27.09.2018, 11:25. Показов 12153. Ответов 8


Студворк — интернет-сервис помощи студентам

Ввести N чисел с клавиатуры и определить максимальное из них. Необходимо использовать циклы, но без массивов.
Как это осуществить?!



0



sourcerer

Модератор

Эксперт CЭксперт С++

5143 / 2322 / 339

Регистрация: 20.02.2013

Сообщений: 5,717

Записей в блоге: 20

27.09.2018, 12:00

2

Лучший ответ Сообщение было отмечено SlavikZhelezo как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
int main ()
{
    std::cout << "Enter number of elements: ";
    unsigned numberOfElements; // N
    std::cin >> numberOfElements;
 
    std::cout << "Enter an integer: ";
    int current = 0;
    std::cin >> current;
 
    int maxElem = current;
    --numberOfElements;
 
    for (unsigned i = 0; i < numberOfElements; ++i)
    {
        std::cout << "Enter an integer: ";
        std::cin >> current;
 
        if (current > maxElem)
        {
            maxElem = current;
        }
    }
    std::cout << "The biggest element: " << maxElem;
}



0



0 / 0 / 0

Регистрация: 26.09.2018

Сообщений: 5

27.09.2018, 12:28

 [ТС]

3

Эта программа с использованием массива, я правильно понимаю?



0



139 / 67 / 46

Регистрация: 15.10.2015

Сообщений: 308

27.09.2018, 12:30

4

SlavikZhelezo, Нету там никакого массива.



0



1 / 0 / 1

Регистрация: 01.10.2015

Сообщений: 58

27.09.2018, 12:36

5

SlavikZhelezo, Эта программа с использованием цикла for. Можно и под while переделать.



0



Yetty

7427 / 5021 / 2891

Регистрация: 18.12.2017

Сообщений: 15,694

27.09.2018, 13:14

6

по условию числа не обязательно целые
SlavikZhelezo,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std; 
 
int main()
{
    int N;
    double a, max=0.0; // ноль присваивается просто для инициализации  
      
    cout <<"N="; cin >>N;  
 
    cout <<"Enter "<<N<<" elements:n";    
    for (int i=1; i<=N; i++)
    {  
        cin>>a;              
        if (i==1 ||a>max) max=a;                    
    } 
 
    cout<<"max="<<max<<endl;
system("pause");
return 0;
}



0



0 / 0 / 0

Регистрация: 26.09.2018

Сообщений: 5

27.09.2018, 23:44

 [ТС]

7

Спасибо мужики! Разобрался не сразу, пришлось пару раз скомпилировать, чтобы понять!



0



Модератор

Эксперт CЭксперт С++

5143 / 2322 / 339

Регистрация: 20.02.2013

Сообщений: 5,717

Записей в блоге: 20

28.09.2018, 06:09

8

Yetty, сочетание пользовательских идентификаторов типа max и директивы using – плохая привычка. Может сыграть с Вами злую шутку когда-нибудь.



0



7427 / 5021 / 2891

Регистрация: 18.12.2017

Сообщений: 15,694

28.09.2018, 10:43

9

sourcerer, TС нужно разобрать код, посмотреть как он работает. с std:: и самодокументацией с непривычки это
сделать намного сложнее. если уж на то пошло, то Ваш код не под условие задачи, т.е. будет выдавать неправильный результат при вводе вещественных чисел (что не противоречит условию задачи), кроме того содержит намного больше строк, следовательно многие строки излишни.



0



Голосование за лучший ответ

Виктор С

Мастер

(1925)


10 лет назад

int mass [20], l;
for(l = 0; l<20; l++)
{
cin>>mass[l];
}
int max = mass[0];
for (l = 1;l<20; l++){
if (max< mass[l]) max = mass[l];
}
cout << max;

Антон ФАГ

Мудрец

(10982)


10 лет назад

#include <iostream>

using namespace std;

int searchMax (size_t n)
{
int value, max;
int first = 1;

for (int i = 0; i < n; i++)
{
cout <<“[” << i << “] = “;
cin >> value;
if (first)
{
max = value;
first = 0;
}
if (value > max) max = value;
}
return max;
}

int main (void)
{
cout << searchMax(5);
system(“pause > nul”);
return 0;
}

 static void Main(string[] args)
     
        {
            int min = int.MaxValue;
            int max = int.MinValue;
 
            Console.WriteLine("Введите N: ");
            int n = int.Parse(Console.ReadLine());
 
            for (int i = 0; i < n; i++)
            {
                Console.Write("Введите число {0}: ", i + 1);
                int val = int.Parse(Console.ReadLine());
                if (val > max) max = val;
                if (val < min) min = val;
            }
 
            Console.WriteLine("nMin = {0}nMax = {1}n{1} - {0} = {2}", min, max, max - min);
 
            Console.ReadLine();
        }
        }
    }

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Необходимо найти и вывести на экран все последовательности длины N из чисел 1,2,...,M. Это одна из типовых задач программирования, с которой, думаю, каждый хотя бы раз в том или ином виде сталкивался или столкнется при работе над каким-либо проектом. И в этой статье, посвященной различным алгоритмам, реализованным на языке C# мы и решим эту саму задачу о поиске всех возможных последовательностей.

Задача

Пользователь вводит с клавиатуры два числа: N — длину каждой последовательности, M — последнее число из ряда 1...M. Программа должна составить N последовательностей длиной N из ряда чисел 1..M.

Суть решения задачи

Чтобы понять, как должен выглядеть результат, представим задачу с конкретными значениями, например, N = 4, M = 3. Тогда наша программа должна составить и вывести следующие последовательности:

(1,1,1,1) (1,1,1,2) (1,1,1,3) (1,1,2,1) (3,1,3,3) (3,2,1,1)....(3,3,3,3)

Количество таких последовательностей всегда будет равно M^N.

Для решения задачи нам понадобятся следующие знания: что такое массив и работа с циклами.

Ниже представлен код программы на C#, реализующий поиск и вывод всех последовательностей длиной N из ряда чисел 1..M

class Program
 {
     static void Main(string[] args)
     {
         byte m;
         byte n;
         byte[] Sequence;
         int counter = 1;

         Console.WriteLine("Введите количество элементов последовательности (N) и нажмите Enter");
         n = byte.Parse(Console.ReadLine());
         Console.WriteLine("Введите последнее число из ряда (1..M) и нажмите Enter");
         m = byte.Parse(Console.ReadLine());

         Sequence = new byte[n]; //массив в котором будет храниться очередная последовательность

         bool yes;
        
         void Next(byte[] sequence)
         {
             int i = n - 1;
             while ((i > -1) && (sequence[i] == m))
             {
                 sequence[i] = 1;
                 i--;
             }
             yes = i > -1;
             //если очередной элемент в последовательности можно нарастить
             if (yes)
             {
                 sequence[i]++;
             }
         }

         //задаем первую последовательность, например, (1,1,1,1)
         for (int i = 0; i < n; i++)
         {
             Sequence[i] = 1;
         }

         //пробуем перебрать все последовательности
         do
         {
             //выводим счётчик очередной последовательности (стартуем с 1)
             Console.Write($"{counter}: ");
             counter++;
             //выводим на экран очередную последовательность
             for (int i = 0; i < n; i++)
             {
                 Console.Write($"{Sequence[i]} ");
             }
             Console.WriteLine();
             //пробуем найти следующую последовательность
             Next(Sequence);
         }
         while (yes);

     }
 }

Результат работы программы представлен ниже:

Введите количество элементов последовательности (N) и нажмите Enter

3

Введите последнее число из ряда (1..M) и нажмите Enter

2

1: 1 1 1

2: 1 1 2

3: 1 2 1

4: 1 2 2

5: 2 1 1

6: 2 1 2

7: 2 2 1

8: 2 2 2

Как видите, программа вывела ровно M^N (2^3 = 8) последовательностей.

Готовый проект C# вы можете скачать из нашего репозитория на GitHub.

Итого

Сегодня мы научились искать все последовательности заданной длины состоящие из чисел от 1 до M. В работе мы использовали массивы, циклы for, while и do..while и для вывода строк воспользовались интерполяцией.

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Добавить комментарий