#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 никак не даются...
что-то не сходится...
vitas
#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();
}
Vitas
#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();
}
vitfs
# 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();
}
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.Подскажите где ошибка!
Первое. Чтобы получить псевдослучайное число в диапозоне [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();
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Как напечатать числа в виде таблицы
Вован, кусок программы с комментами:
Тот же цикл можно записать так:
Или так:
Или так:
ЗЫ. Предполагаем, что введенные значения для основания и показателя степени всегда корректны.
Под виндой:
FOREGROUND_BLUE — Содержит синий цвет текста.
FOREGROUND_GREEN — Содержит зеленый цвет текста.
FOREGROUND_RED — Содержит красный цвет текста.
FOREGROUND_INTENSITY — Устанавливает цвет текста более интенсивный.
BACKGROUND_BLUE — Содержит синий цвет фона.
BACKGROUND_GREEN — Cодержит зеленый цвет фона.
BACKGROUND_RED — Содержит красный цвет фона.
BACKGROUND_INTENSITY — Устанавливает цвет фона более интенсивный.
что-то не сходится...
Как полученный прямоугольный треугольник перевернуть
Один из вариантов
За первую неделю спортсмен пробежал 80 км.Каждую неделю он увеличивал норму на 10%.Посчитать
суммарный путь за 8 недель.
Vitas, ну ты закрутил :)
Один из вариантов решения такой:
Подскажите как с помощью цикла сделать Понедельник7 14 21 28
тоесть дату календаря
Примерно так
Как найти число элементов в массиве
размер массива, не?
Ввести массив чисел int и массив чисел double.Массив без указания числа элементов
Размер массива произвольно.Найти число элементов в массиве и вывести их наоборот
Методика решений задач по теме «Массивы» читал?
как в массиве вести например месяц и сумму прибыли за этот месяц.Месяцев шесть и прибыль ввести за каждый месяц
vitaly-Vitas, тебе надо сесть и внимательно что-то почитать.
Желательно книгу.
Первые страниц 50-100, где изложены базовые сведения по языку С++ (или С).
Прочитать и понять.
Ты некорректно формулируешь вопросы.
Для того, что бы получить правильный ответ, нужно уметь правильно задать вопрос.
Пока твои вопросы из той серии, на которые и сотня мудрецов не смогут ответить.
а о чем это вы тут?
Инициализировать и вывести на экран двумерный массив.Используя случайную генерацию чисел от -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 )
. Так же можно вообще не создавать массив, а просто выводить псевдослучайное число.Вот мой вариант кода( на всякий случай :) ):
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();
}
Помогите найти ошибку!!!