Циклы

#include<iostream>
using namespace std;
void main()
{
    setlocale(LC_CTYPE, "Russian");
    int n;
    n = 0;
    for (int i = 1; i < 10; i++)
    {

        for (int j = 1; j < 10; j++)
            n = n + 1;
    }




    cout << endl;




cin.get();
}

Как напечатать числа в виде таблицы

Вован, кусок программы с комментами:

int number;  // основание степени
int pow;     // показатель степени
cin >> number >> pow;  // взяли значения из стандартного ввода
int result = 1;  // инициализировали переменную для результата

// i - счётчик цикла, инициализируется значением 0
// цикл продолжается, пока счётчик цикла меньше показателя степени
// в конце каждой итерации переменная цикла увеличивается на 1
// цикл выполняется ровно pow раз
for (int i = 0; i < pow; i++) {
    result = result * number;   // (1)
}
cout << result << endl;  // запись результата в стандартный вывод

/*
при number = 2 и pow = 3
   i | result до выполнения (1)| result после выполнения (1)
-----+-------------------------+----------------------------
   0 |            1            |            2
   1 |            2            |            4
   2 |            4            |            8
-----+-------------------------+----------------------------
*/

Тот же цикл можно записать так:

    for ( ; pow > 0; pow--) {
        result = result * number;
    }

Или так:

    while (pow > 0) {
        result = result * number;
        pow--;
    }

Или так:

    while (pow-- > 0) {
        result = result * number;
    }

ЗЫ. Предполагаем, что введенные значения для основания и показателя степени всегда корректны.

Подскажите как изменить цвет и шрифт текста.

Под виндой:

#include <iostream>
#include <Windows.h> 
using namespace std;
int main()
{
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hStdOut,FOREGROUND_RED | BACKGROUND_GREEN);
    cout<<"Red text, green background";
    SetConsoleTextAttribute(hStdOut,FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_BLUE);
    cout<<"Yellow text, blue background";
    return 0;
}

FOREGROUND_BLUE — Содержит синий цвет текста.
FOREGROUND_GREEN — Содержит зеленый цвет текста.
FOREGROUND_RED — Содержит красный цвет текста.
FOREGROUND_INTENSITY — Устанавливает цвет текста более интенсивный.
BACKGROUND_BLUE — Содержит синий цвет фона.
BACKGROUND_GREEN — Cодержит зеленый цвет фона.
BACKGROUND_RED — Содержит красный цвет фона.
BACKGROUND_INTENSITY — Устанавливает цвет фона более интенсивный.

Хотя я их и понял и могу применять в прогах, но вот задачи типа возведения числа в степень через while и for никак не даются...

что-то не сходится...

#include<iostream>
using namespace std;
void main()
{
    setlocale(LC_CTYPE, "Russian");
    for (int i = 1; i <= 3; i++)

    {
        for (int j = 0; j < i; j++)


                cout << "*";

        cout << endl;
    }
    cin.get();
}

Как полученный прямоугольный треугольник перевернуть

Один из вариантов

#include <iostream>

using namespace std;

void main()
{
    setlocale(LC_CTYPE, "Russian");

    for (int i = 3; i; i--){

        for (int j = i; j; j--)
            cout << "*";

        cout << endl;
    }

    cin.get();
}
#include<iostream>
using namespace  std;
void main()
{
    setlocale(LC_CTYPE, "Russian");
    int sum, c;
    sum = 0;
    double a = 80, b = 0.1, i = 8;
    cout << "Пробежал спортсмен за первую неделю";
    cout << "a=" << a << endl;
    cout << "Увелечение пробежки за вторую неделю";
    cout << "b=" << b << endl;
    cout << "Колличество недель тренеровок";
    cout << "i=" << i << endl;
    while (i!=8)
    {
        sum += 80 * 0.1;
        a++;
    }
    cin.get();
}

За первую неделю спортсмен пробежал 80 км.Каждую неделю он увеличивал норму на 10%.Посчитать
суммарный путь за 8 недель.

Vitas, ну ты закрутил :)
Один из вариантов решения такой:

#include<iostream>

void main()
{
    setlocale(LC_CTYPE, "Russian");

    using std::cout;
    using std::cin;

    int i = 8, c = i;
    double a = 80.0, b = 0.1; 
    double distance = a, total = a;

    cout << "Первоначальный показатель за неделю, a = " << a << " км"
        << "\nЕженедельное увеличение пробежки, b = " << b * 100 << " %"
        << "\nКоличество недель тренировок, i = " << i << "\n";

    while (--c){
        distance += distance * b;
        total += distance;
    }

    cout << "\nДистанция на " << i << "-ю неделю тренировок: " << sum << " км"
        << "\nОбщий путь за " << i << " недель: " << total << " км\n";

    cin.get();
}
# include<iostream>
using namespace std;
void main()
{
    setlocale(LC_CTYPE, "Russian");
    int  i = 7, sum = 0;
    while (i <=7)
    {
        cout << "Понедельник";
        sum+= i + 7;
        cout << i+7 << "";
        ++i;


    }
    cin.get();
}

Подскажите как с помощью цикла сделать Понедельник7 14 21 28
тоесть дату календаря

Примерно так

#include <iostream>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Russian");

    int i = 0;

    while ((i += 7) <= 28)
        cout << "Понедельник " << i << endl;

    cin.get();
}

Ввести массив чисел int и массив чисел double.Массив без указания числа элементов

Размер массива произвольно.Найти число элементов в массиве и вывести их наоборот

как в массиве вести например месяц и сумму прибыли за этот месяц.Месяцев шесть и прибыль ввести за каждый месяц

vitaly-Vitas, тебе надо сесть и внимательно что-то почитать.
Желательно книгу.
Первые страниц 50-100, где изложены базовые сведения по языку С++ (или С).
Прочитать и понять.

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

Пока твои вопросы из той серии, на которые и сотня мудрецов не смогут ответить.

#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
void main()
{
    setlocale(LC_CTYPE, "Russian");
    const int m = 3;
    const int n = 2;
    int mass[m][n];
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            int mass = rand() - 20;
            cout << mass[i][j] << "";
        }
        cout << "\n\n";
    }
    cin.get();
}

Инициализировать и вывести на экран двумерный массив.Используя случайную генерацию чисел от -20 до 20.Подскажите где ошибка!

Vitas,

Первое. Чтобы получить псевдослучайное число в диапозоне [a;b], нужно воспользоваться алгоритмом rand() % (b - a + 1) + a. В вашем случае это: mass[i][j] = rand() % ( 20 - ( -20 ) + 1 ) + ( -20 );

Второе. вы забыли забыли «разогнать» генератор случайных чисел. time.h вы подключили, а srand( time( NULL ) ) в начало main добавить забыли. Без этого у вас каждый раз будет одна и та же последовательность.

Третье. Во вложеном цикле вы создаёте переменную mass, имя которой совпадает с именем массива, но так как массив объявлен на блок выше, то переменная «заменит» собой массив в этом блоке. В результате mass[i][j] должен генерировать ошибку компиляции.

Четвёртое. можно сразу присваивать mass[i][j] = rand() % ( 20 - ( -20 ) + 1 ) + ( -20 ). Так же можно вообще не создавать массив, а просто выводить псевдослучайное число.

Вот мой вариант кода( на всякий случай :) ):

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>

using namespace std;

const int N_SIZE = 10;
const int M_SIZE = 10;
const int _RAND_MIN = -20;
const int _RAND_MAX = 20;

int main()
{
    srand( static_cast<unsigned int>( time( NULL ) ) );
    int mass[N_SIZE][M_SIZE];
    for ( int i = 0; i < N_SIZE; i++ )
    {
        for ( int j = 0; j < M_SIZE; j++ )
            cout << setw( 4 ) << ( mass[i][j] = ( rand() % ( _RAND_MAX - _RAND_MIN + 1 ) + _RAND_MIN ) );
        cout << endl << endl;
    }
    //Здесь массив инициалирован 
    return 0;
}


P.S.: Пишите какие ошибки у вас возникают. Мало писать, что «у меня тут ошибка».

include<iostream>

include<stdlib.h>

include<time.h>

using namespace std;
void main()
{
setlocale(LC_CTYPE, «Russian»);
const int n=4 ;
const int m =4;
int mass[n][m], sum = 0, sr = 0, sum1 = 0, sum2 = 0, nu = 0, max = 0, min = 0;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
mass[n][m] = rand() % (20 + 1+20)-20;
cout << mass[n][m] << «»;
}
cout << «\n\n»;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
sum += mass[n][m];
sr = sum / double(n);
if (mass[n][m]>0)
sum1 += mass[n][m];
if (mass[n][m] < 0)
sum2 = mass[n][m];
if (mass[n][m] == 0)
nu++;
}
for (int i = 0; i < n; i++)
{
int max = mass[n][0];
int min = mass[n][0];
for (int j = 0; j < m; j++)
{
if (mass[n][m]>max)
max = mass[n][m];
if (mass[n][m] < min)
min = mass[n][m];
}
}
cout << «Сумма элементов массива=» << sum << endl;
cout << «Среднеарифметическое элементов массива=» << sr << endl;
cout << «Сумма положительных элементов массива=» << sum1 << endl;
cout << «Сумма отрицательных элементорв массива=» << sum2 << endl;
cout << «Колличество нолей в массиве=» << nu << endl;
cout << «Максимальный элемент i-ой строки=» << max << endl;
cout << «Минимальный элемент i-ой строки=» << min << endl;
cin.get();

}

Помогите найти ошибку!!!

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.