В одномерном массиве, состоящем из n элементов, вычислить произведение элементов массива, между первым и последним отрицательными элементами. массив уже есть
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define n 50
int main()
{
int N, i, mass[n];
N=0;
srand(time(NULL));
for (i = 0; i < n; i++) {
if(i%5==0) printf("\n");
mass[i] = rand()%100-50;
printf("%4d ",mass[i]);
C/C++
Написать программу на C
#include
#include
#include
#define n 50
int main()
{
int N, i, mass[n], first,g, last;
N = 0;
srand(time(NULL));
for (i = 0; i < n; i++)
{
if (i % 5 == 0) printf("\n");
mass[i] = rand() %100-50;
printf("%4d ", mass[i]);
}
printf("\n");
for (i = 0; i < n; i++)
{
g = i;
if (mass[i] < 0)
last = i;
}
for (i = g; i >= 0; i--)
{
if(mass[i] < 0)
first = i;
}
printf("\nlast = %d", last);
printf("\nfirst = %d", first);
double res = 1;
for (i = first; i < last; i++)
res *= i;
printf("\nresult = %d", res);
return 0;
}
#include
#include
#define n 50
int main()
{
int N, i, mass[n], first,g, last;
N = 0;
srand(time(NULL));
for (i = 0; i < n; i++)
{
if (i % 5 == 0) printf("\n");
mass[i] = rand() %100-50;
printf("%4d ", mass[i]);
}
printf("\n");
for (i = 0; i < n; i++)
{
g = i;
if (mass[i] < 0)
last = i;
}
for (i = g; i >= 0; i--)
{
if(mass[i] < 0)
first = i;
}
printf("\nlast = %d", last);
printf("\nfirst = %d", first);
double res = 1;
for (i = first; i < last; i++)
res *= i;
printf("\nresult = %d", res);
return 0;
}
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
void fill(int* box, size_t n) {
size_t i = 0;
srand((unsigned)time(NULL));
while (i < n) {
do box[i] = RAND(-9, 10); while (!box[i]);
++i;
}
}
void show(int* box, size_t n) {
size_t i = 0;
while (i < n) {
printf("%5i", box[i]);
++i;
}
puts("");
}
int pos_first_neg(int* box, int n) {
int i = 0;
while (i < n) {
if (box[i] < 0) break;
++i;
}
return i;
}
int pos_last_neg(int* box, int n) {
int i = n - 1;
while (i >= 0) {
if (box[i] < 0) break;
--i;
}
return i;
}
int main(void) {
size_t n = 12;
int first, last;
int* box = (int*)malloc(n * sizeof(int));
fill(box, n);
show(box, n);
first = pos_first_neg(box, n) + 1;
last = pos_last_neg(box, n);
if (first < last) {
double m = 1.0;
while (first < last) {
m *= box[first];
++first;
}
printf("Result: %.0lf\n", m);
} else {
puts("Not found!");
}
system("pause > nul");
return 0;
}
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
void fill(int* box, size_t n) {
size_t i = 0;
srand((unsigned)time(NULL));
while (i < n) {
do box[i] = RAND(-9, 10); while (!box[i]);
++i;
}
}
void show(int* box, size_t n) {
size_t i = 0;
while (i < n) {
printf("%5i", box[i]);
++i;
}
puts("");
}
int pos_first_neg(int* box, int n) {
int i = 0;
while (i < n) {
if (box[i] < 0) break;
++i;
}
return i;
}
int pos_last_neg(int* box, int n) {
int i = n - 1;
while (i >= 0) {
if (box[i] < 0) break;
--i;
}
return i;
}
int main(void) {
size_t n = 12;
int first, last;
int* box = (int*)malloc(n * sizeof(int));
fill(box, n);
show(box, n);
first = pos_first_neg(box, n) + 1;
last = pos_last_neg(box, n);
if (first < last) {
double m = 1.0;
while (first < last) {
m *= box[first];
++first;
}
printf("Result: %.0lf\n", m);
} else {
puts("Not found!");
}
system("pause > nul");
return 0;
}
Похожие вопросы
- Помогите написать программу на C++
- Написать программу на c++
- Помоги пожалуйста написать программу на C++
- Написать программу на C++.Создать класс vector3d, задаваемый тройкой координат. Создать конструктор...
- Помогите написать программу на C++
- Написать программу на C/C++. Найти количество отрицательных элементов под побочной диагональю.
- Помогите написать программу на C++
- ПОМОГИТЕ НАПИСАТЬ ПРОГРАММУ НА C++ ИСПОЛЬЗУЯ ТОЛЬКО ЦИКЛЫ.
- Написать программу на c++ с готовым кодом и блок схемой
- Написать программу на C++