Помощь - Поиск - Пользователи - Календарь
Полная версия: Запись в другой массив
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
18192123
Задан целочисленный массив а из 20 элементов. Из этого массива переписать в массив b подряд все положительные элементы и определить наименьший из них.

Почему у меня не выводится массив b (точнее выводится только один элемент в любом случае)?


#include <STDIO.H>
#include <CONIO.H>
#define NUM 20
void main()
{
clrscr();
int a[NUM], b[NUM];
int i,j;
printf ("\nVvedite 20 chelih 4isel :\n" );
for (i = 0; i < NUM; i++)
{
printf ("%d element massiva --> ", i);
scanf ("%d", &a[i]);
}



for( i = 0,j=0; i < NUM, j<NUM ; i++,j++)
{
if ( a[i] > 0 )
b[j] = a[i];
}
int min = b[0];
for (j = 0; j < NUM; j++)
{
if( b[j] < min)
min = b[j];
}

printf("Min element massiva b = %d", min);
printf ("\nmassiv a \n");
for(i = 0; i < NUM; ++i)
printf("%3d", a[i]);
printf ("\n masssiv b");
for (j=0; j < NUM; ++j);
printf ("%3d",b[j]);

}

volvo
Есть подозрение, что вот это у тебя выполняет не совсем то, что ты задумала:
for( i = 0,j=0; i < NUM, j<NUM ; i++,j++) // <--- 
...
Как ты думаешь, чему равен результат выражения i < NUM, j < NUM ?

А насчет одного элемента -
for (j=0; j < NUM; ++j); // <--- Здесь точка с запятой не нужна совсем
18192123
Цитата(volvo @ 1.06.2007 17:28) *

Есть подозрение, что вот это у тебя выполняет не совсем то, что ты задумала:
for( i = 0,j=0; i < NUM, j<NUM ; i++,j++) // <--- 
...



Как я понимаю, тут должно быть && вместо , .
А ещё такой вопрос: у меня размерности первого и второго массивов совпадают при описании массивов , но во втором массиве не всегда будет 20 элементов...наверно поэтому он дополняется совершенно посторонними числами...а как этого избежать?
volvo
for(i = 0, j=0; i < NUM; i++) {
if( a[i] > 0 ) b[j++] = a[i];
}

int min = b[0]; // <-- Кстати, в чистом С этого делать ЗДЕСЬ нельзя, будет ошибка при компиляции
for (k = 1; k < j; k++) {
if( b[k] < min) min = b[k];
}
(набирал прямо здесь, только чтобы показать идею)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.