Маленький вопрос к знатокам Visual C++

123
Yaroslav_Adv
На сайте с 27.09.2005
Offline
199
#11
Sadie:
Сразу бросилось в глаза. Правильно: if( A[j]==0 )...
Или, что то же самое, if( !A[j] )...

Все равно не работает :(

С уважением, Ярослав Деревягин Веб-агентство "Found (http://found-it.ru)"
Sadie
На сайте с 11.04.2005
Offline
64
#12

Ща...

Правильный ответ:


#include <stdio.h>
void main()
{
int s = 0;
int j,i;
int A[3][3];

for( i = 0; i < 3; i++ )
for( j = 0; j < 3; j++ )
scanf( "%d", &A[j]);

printf("\n");

for( i = 0; i < 3; i++ )
for( j = 0; j < 3; j++ )
if( !A[j] )
{
s++;
break; // не считать строку с двумя нулями за две подобные строки
}

printf( "\n" );
printf( "Summa strok s 0: %d\n", s );
}
Новости без комплексов (http://www.kompleksov.net/) | ЖЖ (http://sad-sadie.livejournal.com/)
Yaroslav_Adv
На сайте с 27.09.2005
Offline
199
#13

Sadie, не работает :( Показывает s=9.

СКОРПИОН
На сайте с 05.01.2006
Offline
120
#14

Я бы сделал немного не так.

Нужно обратиться к истокам ;) и вспомнить, что при представлении чисел в двоичной системе счисления в младшем разряде для нечётного числа всегда будет стоять единица (напрмер 9 - 1001). Т.е. для того, чтобы проверить число на нечётность достаточно проверить его младший бит.

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

bool neChet=Chislo&1;

А для исходного запроса так:

if((A[j]/2)&1)

• Контекстные ссылки с внутренних страниц навсегда (/ru/forum/370882) • Качественные сайты для заработка на контекстной рекламе и ссылках
Sadie
На сайте с 11.04.2005
Offline
64
#15
Yaroslav_Adv:
не работает Показывает s=9.

Оригинально, я проверяла перед тем, как запостить... (VC 7.0)

Посмотрим, приходит ли матрица в целом виде к самой проверке:


#include <stdio.h>
void main()
{
int s = 0;
int j,i;
int A[3][3];

for( i = 0; i < 3; i++ )
for( j = 0; j < 3; j++ )
scanf( "%d", &A[j]);

for( i = 0; i < 3; i++ )
{
printf("\n");
for( j = 0; j < 3; j++ )
{
printf( "%d ", A[j] );
if( !A[j] )
{
s++;
break; // не считать строку с двумя нулями за две подобные строки
}
}
}

printf( "\n" );
printf( "Summa strok s 0: %d\n", s );
}
Yaroslav_Adv
На сайте с 27.09.2005
Offline
199
#16

СКОРПИОН, это я уже сделал, лучше бы подсказали по второй программке - спасибо бы сказал :)

Yaroslav_Adv
На сайте с 27.09.2005
Offline
199
#17
Sadie:
Оригинально, я проверяла перед тем, как запостить... (VC 7.0)

А у меня 6.0 :)

Sadie
На сайте с 11.04.2005
Offline
64
#18

Yaroslav_Adv,

В исправленном виде матрицу печатает? До нулей?

Yaroslav_Adv
На сайте с 27.09.2005
Offline
199
#19

Sadie, вбиваю элементы массива (9 штук), выдается матрица, пишется кол-во строк 9 и все.

dkameleon
На сайте с 09.12.2005
Offline
386
#20
Yaroslav_Adv:
Нужно следующее условие:

Элементы матрицы A(N,M), которые при делении на два дают нечетное число.

Хм..... вчитался.

при целочисленном делении на два?

Если при целочисленном, то так:

if (A[j] & 2 > 0) // проверяем сразу второй бит

При учитывании возможности получения дроби - так:

if (A[j] & 3 == 2) // проверяем первый бит на 0 и второй бит на 1


ПС.

2 Yaroslav_Adv

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

Дизайн интерьера (http://balabukha.com/)
123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий