Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mamonnn
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 4
#1

Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B - C++

24.06.2011, 22:24. Просмотров 917. Ответов 2
Метки нет (Все метки)

Даны векторы A[20], B[15], C[10], у каждого из которых есть хотя бы одна отрицатель-
ная компонента. Символьной переменной L присвоить значение true, если отрицательная
компонента вектора C встретится не позднее, чем у векторов A и B[/B] (компоненты просмат-
риваются в порядке возрастания их номеров), и значение false в противном случае.

Вот я написал прогу вроде всё работает но мне кажется что я её не так написал:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
using namespace std;
int main(int argc, char* argv[]){
int i,k,m,n;
setlocale( LC_ALL, "rus" );
bool l;
int A[20],B[15],C[10];
l=false;
cout <<"Введите массив А:";
cout<<"\n";
for (i=0; i<20; ++i) {
cout <<"A["<<i+1<<"]=";
cin>> A[i];}
cout <<"Массив A: ";
for (i=0; i<20; i++) cout <<A[i]<<" ";
 
cout<<"\n";
cout <<"Введите массив B:";
cout<<"\n";
for (i=0; i<15; ++i) {
cout <<"B["<<i+1<<"]=";
cin>> B[i];}
cout <<"Массив B: ";
for (i=0; i<15; i++) cout <<B[i]<<" ";
 
cout<<"\n";
cout <<"Введите массив С:";
cout<<"\n";
for (i=0; i<10; ++i) {
cout <<"C["<<i+1<<"]=";
cin>> C[i];}
cout <<"Массив C: ";
for (i=0; i<10; i++) cout <<C[i]<<" ";
 
for (i=0; i<20; i++)
{if (A[i]<0) {l=true; k=i; break;} }
 
for (i=0; i<15; i++)
{if (B[i]<0) {l=true; m=i; break;} }
 
for (i=0; i<10; i++)
{if (C[i]<0) {l=true; n=i; break;} }
 
if (n<=m && n<=k) {l=true; cout <<"l= true";} else {l=false; cout <<"l=false";}
return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2011, 22:24     Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B
Посмотрите здесь:

Переменной Т присвоить значение истина, если максимальный элемент одномерного массива единственный и не превосходит наперед заданного числа А C++
присвоить переменной значение C++
Если значения A и B не равны, то присвоить каждой переменной большее из этих значений... C++
C++ Переменной m присвоить значение 1, если x<y и -1, если x>=y
Даны действительные числа x, y. Если x и y отрицательные, то х присвоить значение удвоенного модуля х. Если положительно одно из них, то увеличить у в C++
Присвоить переменной значение по условию C++
Как присвоить переменной имя, взятое из вектора C++
Присвоить переменной S определенное значение, если введенное число х лежит вне отрезков [2..5] и [-1..1] C++
Переменной t присвоить значение true если в массиве x нет нулевых элементов C++
C++ Как присвоить переменной значение pow?
C++ Двойная кавычка как значение символьной переменной
Присвоить значение переменной в зависимости от условия C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,394
24.06.2011, 23:03     Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B #2
Всё не проверял, но зачем l= true в циклах? Это лишнее. Просто индексы нашёл и этого достаточно, а потом на проверку условия.
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,989
25.06.2011, 10:31     Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B #3
Код для просмотра (не проверяет границы, т.к. условиями гарантировано наличие отрицательного элемента)
C++
1
2
3
4
for (i = 0; A[i]>=0 && B[i] >= 0 && C[i] >= 0; i++)
  ;
l = C[i] < 0;
cout << "l = " << boolalpha << l << endl;
С проверкой границы код немного меняется
C++
1
2
3
4
for (i = 0; i < 10 && A[i]>=0 && B[i] >= 0 && C[i] >= 0; i++)
  ;
l = i < 10 && C[i] < 0;
cout << "l = " << boolalpha << l << endl;
Правда не совсем я понял где тут символьная переменная, и как ей присвоить значение true. У меня как и в исходной версии переменная булева.
Yandex
Объявления
25.06.2011, 10:31     Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B
Ответ Создать тему
Опции темы

Текущее время: 03:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru