#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
int*b, i, n;
printf("Enter number of elements\n");
scanf_s("%d", &n);
b = new int[n];
for (i = 0; i < n; i++)
{
printf("Enter element [%d]\n", i + 1);
scanf_s("%d", b + i);
}
for (i = n - 1; i >= 0; i--)
{
if (( b>= 5) && (b <= 10) || (b >= 30) && (b <= 40) || (b >= 70) && (b <= 90))
printf("%d ", *(b + i));
}
return 0;
}
Нужно сделать так, чтобы массив шел в обратном порядке, если его элемент b лежит в одном из диапазонов [5, 10], [30, 40], [70, 90].
C/C++
В чём заключается ошибка? (не могу запустить код)
Что такое "элемент b"? b - это указатель на массив. Нулевой элемент?
Во-первых, b >= 5 и прочее: указатель надо разыменовать (*b).
Во-вторых, b не прирастает в цикле, на всех итерациях для сравнения берётся нулевой элемент (хотя, может, так и задумано?)
В-третьих, если в сравнении не используется переменная цикла, то зачем его делать внутри цикла? Можно вынести if наружу.
Во-первых, b >= 5 и прочее: указатель надо разыменовать (*b).
Во-вторых, b не прирастает в цикле, на всех итерациях для сравнения берётся нулевой элемент (хотя, может, так и задумано?)
В-третьих, если в сравнении не используется переменная цикла, то зачем его делать внутри цикла? Можно вынести if наружу.
for (i = n - 1; i >= 0; i--){
int element = *(b + i);
if ((element >= 5 && element = 30 && element = 70 && element
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
int*b, i, n;
printf("Enter number of elements\n");
scanf_s("%d", &n);
b = new int[n];
for (i = 0; i < n; i++)
{
printf("Enter element [%d]\n", i + 1);
scanf_s("%d", *(b + i)); // Вместо *(b + i) можешь использовать b[i]
}
for (i = n - 1; i >= 0; i--)
{
if (( b>= 5) && (b <= 10) || (b >= 30) && (b <= 40) || (b >= 70) && (b <= 90)) // Здесь нет логики, для какой цели ты используешь значение именного самого указателя?
printf("%d ", *(b + i)); // Вместо *(b + i) можешь использовать b[i]
}
return 0;
}
#include <conio.h>
#include <stdlib.h>
int main()
{
int*b, i, n;
printf("Enter number of elements\n");
scanf_s("%d", &n);
b = new int[n];
for (i = 0; i < n; i++)
{
printf("Enter element [%d]\n", i + 1);
scanf_s("%d", *(b + i)); // Вместо *(b + i) можешь использовать b[i]
}
for (i = n - 1; i >= 0; i--)
{
if (( b>= 5) && (b <= 10) || (b >= 30) && (b <= 40) || (b >= 70) && (b <= 90)) // Здесь нет логики, для какой цели ты используешь значение именного самого указателя?
printf("%d ", *(b + i)); // Вместо *(b + i) можешь использовать b[i]
}
return 0;
}
Похожие вопросы
- Можете составить код к этой формуле на языке С++
- Можете составить код к этой формуле на языке С++. буду очень благодарен
- Помогите пожалуйста не могу написать код
- Не могу написать код на с++ нужно решать через циклы но если у вас другие варианты пишите тоже желательно циклы
- Ошибки в коде c++
- Помогите, пожалуйста, исправить ошибку в коде (C++).
- Помогите найти ошибку в коде
- Помогите найти ошибку.Где ошибка в коде не могу найти язык СИ
- Где ошибка в коде с++
- Ошибки в коде. Почему не работает и как сделать чтобы заработало ?