powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / массивы в с++
8 сообщений из 8, страница 1 из 1
массивы в с++
    #39196793
MachMut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дан массив F(10). Все нечетные элементы удвоить и найти их сумму, а четные уменьшить вдвое и найти их количество). Не получается вывести удвоенные элементы и их сумму. Помогите пожалуйста. Буду очень благодарна))
Вот, что у меня есть:
Код: 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.
#include <stdio.h>
#include <stdlib.h>
const N=10;
main() {
	int i,p,o;
	int j=0;
	int sum=0;

		int a[]=
        	{4,8,-7,12,-3,-1,9,2,-4,15};
        	 printf("mass:%d\n",i);
        for (i=0; i<N;i++)
	 if (a[i] %2==0){
	  p=a[i]/2;
      printf("p:%d\n",p);
	  j++;
	    printf("kol:%d\n",j);
	 }
     else 
	   o=a[i]*2;
	    sum+=a[i];
	    printf("o:%d\n",o);
     printf("summa nechetnux chisel=%d\n",sum);
	return 0;
} 
...
Рейтинг: 0 / 0
массивы в с++
    #39196805
MachMut,

Попробуйте пройти код по шагам в отладчике, он небольшой и много времени не потребует.
Думается мне, что вся проблема состоит в отсутствии {} после else.
...
Рейтинг: 0 / 0
массивы в с++
    #39196814
MachMut,

самый первый printf работает с неинициализированной переменной, это неправильно
...
Рейтинг: 0 / 0
массивы в с++
    #39197129
MachMut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогатель,
а не подскажите, это решение является правильным и как вывести удвоенные и уменьшенные элементы массива?
Код: 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.
[FIXED][quote автор]#include <stdio.h>
#include <stdlib.h>
const N=10;
main() {
	int i,p,o;
	int j=0;
	int sum=0;

		int a[]=
        	{4,8,-7,12,-3,-1,9,2,-4,15};
       
        for (i=0; i<N;i++)
	 if (a[i] %2==0){p=a[i]/2;      //printf("p:%d\n",p);
	  j++;
	 }
     else {                             //o=a[i]*2;
	    sum+=a[i]*2;}
	      printf("summa nechetnux chisel=%d\n",sum);
	    printf("kolichestvo chetnux chisel:%d\n",j);
	    //printf("o:%d\n",o);
   
	return 0;
}
[/quote][/FIXED]
...
Рейтинг: 0 / 0
массивы в с++
    #39197236
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давай разберемся...

во-первых юзай стандартные типы, если хочешь использовать массив, то подумай дважы почему имеено так
во-вторых старайся поместить переменную как можно ближе к месту использования
>>>>> в-третьих всегда инициализируй перменную!! <<<<<
в-четвертых используй говорящие имена, а не ересь из одной или двух букв (можно только если это переменная одноуровневого цикла)

эти правила просты, но если ты привыкнешь их соблюдать, твой код будет очень крут в итоге.

хороший тест для кода - беглый просмотр должен давать понять что он делает. если ты сморишь на код бегло и ничего не понимаешь - это плохой код (если конечно нет веской причины писать его именно так).

я написал твою задачу испольузю эти правила. постарайся и ты написать.
...
Рейтинг: 0 / 0
массивы в с++
    #39197254
MachMut,

Рискну предположить, что вам очень хочется СДЕЛАТЬ эту работу, а не получить готовый результат. Поэтому ряд советов:
1. Запишите порядок действий в блокноте/ворде/на листочке в виде: "проверяем элемент на четность, если четный, то ..."
2. Сформируйте по описанию задачи код и оформите его визуально правильно.
вместо конструкций вида (прошу смотреть только на оформление кода):
Код: plaintext
1.
2.
3.
4.
if (a>b) { a++; j--;
  printf();
}
else a++;


используйте такую запись:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if (a>b) { 
  a++; 
  j--;
  printf();
} else { 
  a++; 
}


Это позволит снизить в разы количество грабель на квадратный метр кода.
3. Используйте отладчик. Разберитесь, как это делается. Поверьте, сверхъестественного от него вам ничего не понадобится.

PS На случай, если таки нужно быстрое решение - то, что написано в коде, должно сработать в отношении подсчетов. Но надо вам самому ручками пробежать по шагам в отладчике и проверить, чтобы убедиться в этом.
Для вывода удвоенного значения в ветке else рядом с нахождением суммы просто через printf выводите a[i]*2
Раскомментируйте первый printf. Он будет выводить уменьшенные элементы
...
Рейтинг: 0 / 0
массивы в с++
    #39197320
MachMut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогатель,
я написала, как вы сказали, а он не работает:
Код: c#
1.
 printf("ydvoennue el:%d\n",a[i]*2);


выдает лишь число 6, не скажите почему?
...
Рейтинг: 0 / 0
массивы в с++
    #39197323
MachMut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогатель,

все, разобралась, заработало, спасибо огромное))) благодарю за помощь)))
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / массивы в с++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]