
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.87] |
![]() |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
просто понятия не имею как эти программы писать
1.Известна информация о багаже (количество вещей и общий вес багажа) 24-х пассажиров. Выяснить, имеется ли хоть один пассажир, багаж которого состоит из од-ной вещи весом менее 25 кг. 2.Удалить из массива:все элементы, начиная с n1-го по n2-й (n1<=n2). 3.Изменить знак у максимального по модулю элемента массива. Минимальный элемент массива при этом не определять. |
Сообщ.
#2
,
|
|
|
Ты хочешь научиться, или хочешь просто готовые программы?
|
Сообщ.
#3
,
|
|
|
1, 2 и 3 связаны между собой или нет?
Если нет, то 2 так, скажем: ![]() ![]() #include <stdio.h> typedef int T; /* вид данных массива: int - целое число, char - 1-байтное 'число', long-большое число, и т.д. */ T massiv[10]={3,14,15,92,6,53,58,97,9,-1}; /* массив из 10 элементов */ void Delete( int n1, int n2) { memmove( &massiv[n1], &massiv[n2+1], (10-1-n2)*sizeof(T)); /* если n2=9, то всё до хвоста удалили и ничего не надо двигать */ } int main() { int i; for( i=0; i<10; i++) printf("%d\t", massiv[i]); /* пишем до удаления */ Delete( 3, 7); for( i=0; i<10; i++) printf("%d\t", massiv[i]); /* пишем опосля удаления */ } |
Сообщ.
#4
,
|
|
|
Цитата JoeUser @ Ты хочешь научиться, или хочешь просто готовые программы? мне их надо написать 45 штук. они блоками похоже. я смотрю как сделать и примерно похожие на это делаю. я так учусь Добавлено Цитата Славян @ 1, 2 и 3 связаны между собой или нет? Если нет, то 2 так, скажем: ![]() ![]() #include <stdio.h> typedef int T; /* вид данных массива: int - целое число, char - 1-байтное 'число', long-большое число, и т.д. */ T massiv[10]={3,14,15,92,6,53,58,97,9,-1}; /* массив из 10 элементов */ void Delete( int n1, int n2) { memmove( &massiv[n1], &massiv[n2+1], (10-1-n2)*sizeof(T)); /* если n2=9, то всё до хвоста удалили и ничего не надо двигать */ } int main() { int i; for( i=0; i<10; i++) printf("%d\t", massiv[i]); /* пишем до удаления */ Delete( 3, 7); for( i=0; i<10; i++) printf("%d\t", massiv[i]); /* пишем опосля удаления */ } не связаны. три разных блока это |
Сообщ.
#5
,
|
|
|
3-я так, скажем:
![]() ![]() #include <math.h> float massiv[10]={3,0.14,-0.15,92,-6, 53.58,-97.9,32.38,46.264,3}; int main() { float alexMax=fabs(massiv[0]); int i, obmen=0; for( i=0; i<10; i++) printf("%f\t", massiv[i]); /* пишем до изменения */ for( i=1; i<10; i++) if( fabs(massiv[i])>alexMax ) alexMax=fabs(massiv[i]), obmen=i; massiv[obmen] = -massiv[obmen]; for( i=0; i<10; i++) printf("%f\t", massiv[i]); /* пишем опосля изменения */ return(0); } |
Сообщ.
#6
,
|
|
|
Цитата Славян @ 3-я так, скажем: ![]() ![]() #include <math.h> float massiv[10]={3,0.14,-0.15,92,-6, 53.58,-97.9,32.38,46.264,3}; int main() { float alexMax=fabs(massiv[0]); int i, obmen=0; for( i=0; i<10; i++) printf("%f\t", massiv[i]); /* пишем до изменения */ for( i=1; i<10; i++) if( fabs(massiv[i])>alexMax ) alexMax=fabs(massiv[i]), obmen=i; massiv[obmen] = -massiv[obmen]; for( i=0; i<10; i++) printf("%f\t", massiv[i]); /* пишем опосля изменения */ return(0); } так просто? |
Сообщ.
#7
,
|
|
|
Да нисколько не просто - гляньте сколько строк то вышло!
В каком-то языке наверняка такое возможно: massiv.getMax().changeSign(); ![]() |
Сообщ.
#8
,
|
|
|
Цитата Славян @ Да нисколько не просто - гляньте сколько строк то вышло! В каком-то языке наверняка такое возможно: massiv.getMax().changeSign(); ![]() ну впр сам код то не сильно заморочееный |
Сообщ.
#9
,
|
|
|
1-я:
![]() ![]() #include <stdio.h> typedef struct { int kol; float ves; } BAGAJ; BAGAJ b[24]={{11,1},{2,2},{1,4},...}; int main() { int i; for( i=0; i<24; i++) if( b[i].kol==1 ) /* О! всего одна вещь! */ if( b[i].ves<25 ) /* ого, лёгкая! */ printf("Багаж №%d нужный!\n",i); return(0); } |
Сообщ.
#10
,
|
|
|
Цитата Славян @ 1-я: ![]() ![]() #include <stdio.h> typedef struct { int kol; float ves; } BAGAJ; BAGAJ b[24]={{11,1},{2,2},{1,4},...}; int main() { int i; for( i=0; i<24; i++) if( b[i].kol==1 ) /* О! всего одна вещь! */ if( b[i].ves<25 ) /* ого, лёгкая! */ printf("Багаж №%d нужный!\n",i); return(0); } славян вообще красавец. вот что ты не хочешь за это деньги брать? |
Сообщ.
#11
,
|
|
|
Лучше не уходить болтовнёй в сторону, а то Джо серчать буде!
![]() |
Сообщ.
#12
,
|
|
|
Цитата Славян @ славян я вот думаю ее можно же сделать так не? ![]() ![]() int main() { int n=24; int b[n]; int i; srand(time(NULL)); for (i=1;i<n;i++) { b[i]=rand() % 10+24; printf("%d kg\n", b[i]); } i=1; while (i<n) { if (b[i]<25) { printf("est' bagazh massoy menee 25 kg"); break; } else i++; } return 0; } Добавлено Цитата Славян @ а вот эта неверная. она же не удаляет н |
Сообщ.
#13
,
|
|
|
Цитата alex____666 @ Ну в принципе, можно. Но есть недостаток: индексы идут с 0, а у вас с 1, так что b[0] не проверится, а это всё же близко к ошибке. я вот думаю ее можно же сделать так не? |
![]() |
Сообщ.
#14
,
|
|
M Используем тег [code] для добавления текста программы в пост! Устное предупреждение! Читаем правила! |
Сообщ.
#15
,
|
|
|
Цитата alex____666 @ Из массива в Си, насколько я знаю, ничего не удаляется. Так что там у меня просто в ненужные места записываются оставшиеся элементы с хвоста. В каком-то смысле сие похоже на удаление.а вот эта неверная. она же не удаляет В противном случае, надо объяснить, что означает "удалить из массива". |