Работа с массивами.

Пример 1:

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

Решение от преподавателя:

int main() { const n=10, c1=10, c2=11, с3=12; int k1=0, k2=0;

int a[n]={1, 0,-3,22, -33,-4,0 ,0, -22};

for( int i=0;i

{ if (a[i]>0) { textcolor(c1); k1++; }

else if (a[i]<0) { textcolor(c2); k2++; }

else textcolor (с3);

cprintf("%d ", a[i] ); }

textcolor(c1); cprintf ("\r\n Number of positive %d", k1);

textcolor(c2); cprintf ("\r\n Number of negative %d ", k2);

textcolor(с3); cprintf ("\r\n Number of 0 %d", n-k1-k2);

getch(); return 0; }

Пример 2:

Поиск в массиве. . Определить, есть ли в одномерном массиве отрицательные чис-ла. Если есть, вывести “Yes” и номер последнего такого числа, в противном случае вывести “No”.

Решение от преподавателя:

int main() { const n=10; int a[n]={1, 22, -3, 40, -55 ,-6, 0 , -0, -99};

/*Второй тест: нет отрицательных

int a[n]={1, 22, 3, 40, 55, 6, 0, 0, 99};*/

int N0=-1; /* Пусть нет отрицательных. Для поиска последнего от-рицательного числа просматриваем массив в обратном порядке.*/

for (int i=n-1; i>=0; i--) if (a[i] <0) { N0=i; break; }

/* Нашли первое с конца, или последнее в массиве отрицательное число, и дальше массив не просматриваем, вышли из цикла с помощью break;*/

if (N0 == -1) cout<<”\nNo”;

/* В массиве нет отрицательного числа, вышли из цикла после того, когда просмотрели все элементы, то есть когда i>=0 стало ложным. */

else /* В массиве было отрицательное число и вышли из цикла с по-мощью break. */

cout<<"\n Yes, number of the last "<< N0+1 ;

getch(); return 0; }

Пример 3:

Поиск в массиве. Ввести массив с экрана. Найти сумму чисел до первого нуля и его номер. Если нуля нет, вывести сумму всех чисел массива.

Решение от преподавателя:

int main() { const n=5; int a[n]; for(int i=0; i>a[i];

int n2=-1 , /* Номер первого нуля. */

s=0, i=0;

while (i

s+=a[i++]; }

if (n2 == -1) cout<<"No 0, sum = "<

else { cout<<"Number of the first 0 " <

if (n2!=1) cout<<", sum before the first 0 = "<

getch(); return 0; }

Пример 4:

Построение массива. Построить массив положительных и массив отрицательных чи-сел и вывести их.

Решение от преподавателя:

int main()

{ const n = 10; int a[n], //Исходный массив

b[n], //Массив положительных чисел

d[n]; // Массив отрицательных чисел

cout<<"Array : "; randomize();

for (int i=0; i

printf ("%5d",a[i]); }

int nd=0, nb=0;

for (int i=0; i

if (a[i]<0) d[nd++] = a[i];

else if (a[i]>0) b[nb++] = a[i];

cout<<"\nPositive array: "; for (int i=0; i

cout<<"\nNegative array: "; for (int i=0; i

getch(); return 0; }

Пример 5:

Преобразование массива.  Массив преобразовать следующим образом: все числа из отрез-ка [0,1] увеличить в 10 раз, отрицательные уменьшить в (–2) раза, остальные уменьшить в 10 раз. Преобразованный массив оставить на том же месте.

Решение от преподавателя:

int main()

{ const n=5; float a[n]= { 0.12, -3.4, .5, 67, 8 };

for (int i=0; i

if(a[i]>=0 && a[i]<=1) a[i] = a[i]*10;

else if (a[i]<0) a[i]=a[i] / (-2);

else a[i] = a[i]/10. ;

for (int i=0; i

getch(); return 0; }

Пример 6:

Ввести массив с экрана. Найти его наибольший и наименьший элементы и переставить их, т. е. на место каждого наибольшего поместить наименьший элемент, на место каждого наименьшего поместить наибольший элемент.

Решение от преподавателя:

int main() { const n=5; int a[n], i;

for (i=0; i>a[i]; }

int min1=a[0], max1=a[0];

for (i=1; ia[i]) min1=a[i];

else if ( max1

cout<

for (i=0; i

else if (min1==a[i]) a[i]=max1;

cout<<"\n The new array\n" ;

for (i=0;i

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!

Заполните, пожалуйста, данные для автора:

  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн