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

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

Войти
Регистрация
Восстановить пароль
 
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
#1

Найти в массиве максимальное значение среди чисел, не кратных 9 - C++

06.04.2014, 13:10. Просмотров 287. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h> 
#define N 3 
void main() 
{ 
int a[N]; 
int i, j, max; 
for (i = 0; i<N; i++) 
scanf("% d", &a[i]);
max = 0; j = 0;
for(i=0; i<N; i++)
{
    if (a[i]%9!=0 && a[i]>99 && a[i]<1000)
    {
        if (max < a[i]) 
            {
                max = a[i];
                j++;
            }
    }
}
if (j == 0) printf("Не найдено!");
else printf("%d",max);
}
Я уже весь просмотрел, и не могу понять, почему j всегда равно нулю? Все условия верны, даже при присвоении j значения в начале отличного от нуля, все равно выводит 0. Это магия просто какая то. Помогите пожалуйста
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 13:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти в массиве максимальное значение среди чисел, не кратных 9 (C++):

Нужно найти минимальное значение среди позитивных чисел и максимальное среди отрицательных. - C++
Есть массив А, который вводится с клавиатуры. Нужно найти минимальное значение среди позитивных чисел и максимальное среди отрицательных....

Найти наибольшее значение среди чисел, кратных 3 - C++
Даны натуральное число (n&lt;=100). Целые числа x1,......, xn. Найти наибольшее значение среди чисел, кратных 3. Если таких не окажется, то...

Дан одномерный целочисленный массив А из N элементов. Найти в нём максимальное значение среди простых чисел - C++
Здравствуйте,уважаемые программисты!) Помогите решить,пожалуйста, данную задачку в С++: Дан одномерный целочисленный массив А из N...

Матрицы. Найти максимальное значение среди буквенных символов и минимальное среди цифровых значений - C++
Задание звучит так:Дана матрица 5х7, элементами которой являются значения сим-вольного типа. Найти максимальное значение среди буквенных...

Найти минимальное число среди положительных чисел и максимальное число среди отрицательных чисел - C++
Никак не могу понять ,как написать эту программу.Помогите пожалуйста. Задан одномерный массив А (10) действительных чисел. Ввести массив...

Найти максимальное число в массиве среди повторяющихся - C++
Помогие пожалуйста, нужно найти максимальное из чисел, встречающихся в заданном целочисленном массиве более одного раза. Размерности...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BlackSpace
137 / 130 / 52
Регистрация: 15.03.2014
Сообщений: 277
06.04.2014, 13:21 #2
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 <stdio.h>
#include <stdlib.h>
 
#define N 3
 
int main() {
    int a[ N ];
    int i, j, max;
 
    for ( i = 0; i < N; i++ )
        scanf( "%d", &a[ i ] ); // убрать пробел % d
 
    max = 0;
    j = 0;
    for ( i = 0; i < N; i++ ) {
        if ( a[ i ] % 9 != 0 && a[ i ] > 99 && a[ i ] < 1000 ) {
            if ( max < a[ i ] ) {
                max = a[ i ];
                j++;
            }
        }
    }
    if ( j == 0 )
        printf( "Не найдено!" );
    else
        printf( "%d", max );
}
Результат работы
100 200 900
200
И это раздел C++ а не C. Выбирайте пожалуйста для темы соответствующий раздел.
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,470
06.04.2014, 13:27 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Это магия просто какая то.
Если ты распечатаешь введенные числа, можно попробовать расколдовать...
Попробуй в 12-й строчке написать
C++
1
if ((a[i]%9)!=0 && a[i]>99 && a[i]<1000)
чтоб не грешить на приоритеты...
А печать a[i] хорошо поставить в начало внешнего цикла
И общий совет: для анализа странного поведения программы вставляй печать промежуточных результатов. Если этих результатов получается много, перенаправь вывод в файл
proga.exe >file

Добавлено через 2 минуты
В строчке 8 между процентом и d пробел
1
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
06.04.2014, 13:34  [ТС] #4
BlackSpace, а что собственно изменилось в вашей программе? Не могу понять, кроме того, что вы более удобно расставили пробелы и переносы строки.
Байт, я везде ставил j++ в каждое место программы - в цикл сам вставлял перед условиями, в каждое условие вставлял, даже ЗА цикл, и ничего не изменилось, j == 0 всегда. В 8 строчке пробел я сам удивился - но так написано было в задании ЕГЭ С2.
0
BlackSpace
137 / 130 / 52
Регистрация: 15.03.2014
Сообщений: 277
06.04.2014, 13:35 #5
CHELOVEKPAUK, смотрите комментарий в программе
Цитата Сообщение от BlackSpace Посмотреть сообщение
scanf( "%d", &a[ i ] ); // убрать пробел % d
Программа написана верно - я даже результат работы программы привел. Дело только в пробеле.
1
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
06.04.2014, 13:35  [ТС] #6
Байт, да, действительно, проблема в приоритетах была.
А нет, не только приоритет, и без скобок тоже работает со scanf. Спасибо.
0
BlackSpace
137 / 130 / 52
Регистрация: 15.03.2014
Сообщений: 277
06.04.2014, 13:42 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
В строке
C
1
2
3
...
if ( a[ i ] % 9 != 0 && a[ i ] > 99 && a[ i ] < 1000 );
...
проблем с приоритетами нет.
Все работает так как ожидается.

Проблема было только в строке
C
1
2
3
...
scanf( "%d", &a[ i ] ); // из-за пробела между % и d
...
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 13:42
Привет! Вот еще темы с ответами:

Найти минимальное значение среди элементов, стоящих над главной диагональю, и максимальное среди элементов - C++
Дана действительная матрица 7x7. Найти минимальное значение среди элементов, стоящих над главной диагональю, и максимальное среди...

Найти максимальное значение среди найденных 4 минимальных - C++
Необходимо написать программу которая будет находить максимальное число от найденных 4 минимальных. Размерность массива 10. Елементы...

Среди заданных целых чисел k, f, t найти пары кратных - C++
Добрый день.Такая вот задача:среди заданных целых чисел k, f, t найти пары кратных и вывести их на экран.Нужно сделать на C++.

Среди заданных целых чисел k,l,m найти пары кратных - C++
Среди заданных целых чисел k,l,m найти пары кратных. То что получилось\получается у меня - бред%)


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.04.2014, 13:42
Ответ Создать тему
Опции темы

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