php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 28/02/10 в 20:07 |
Ребят, помогите плиз написать на Си вот такое:
Дан одномерный массив, нужно
Цитата: | Поменять местами отрицательные элементы массива с положительными. Замену остановить, если «+»-е или «-»-е элементы закончатся. Оставшиеся элементы свое место не изменяют. |
Нужно помочь одной знакомой девушке. Ну кто в теме это ж просто
Семок отсыплю по максимуму. В гугл не слать, читать маны тоже.
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 01/03/10 в 19:48 |
я не гуру С/С++ и тем более сильно тороплюсь
где вот такой бред на ANSI C, архитектура гавно, пусть ловит саму идею и правит как надо
среда VS 9.0, консольное приложение win32
Код: | #include <stdio.h>
#include <tchar.h>
#define count(arr) (sizeof(arr) / sizeof(arr[0])) //count array elements
#define giveArr(arr) arr, count(arr) //get array pointer and size
const int aSize = 10;
void fillArray(int*, int*, int, char);
void echoArray(int*, int);
void initArray(int*, int);
void reSortArray(int*, int*, int*);
void _tmain(int argc, _TCHAR* argv[])
{
int positive[aSize], negative[aSize], myArray[aSize] = {10,-2,3,-5,-6,8,-4,5,-5,-62};
initArray(giveArr(positive));
initArray(giveArr(negative));
fillArray(myArray, positive, aSize, 'p');
fillArray(myArray, negative, aSize, 'n');
printf("\r\n--------before resorting--------\r\n");
echoArray(giveArr(myArray));
reSortArray(myArray, positive, negative);
printf("\r\n--------after rsorting----------\r\n");
echoArray(giveArr(myArray));
getchar(); //press enter to exit
}
void fillArray(int* baseArray, int* subArray, int size, char flag)
{
if('p' == flag){
while(0 < size--){
if(*baseArray > 0)
{
*subArray = *baseArray;
++subArray;
}
++baseArray;
}
}
else{
while(0 < size--){
if(*baseArray < 0)
{
*subArray = *baseArray;
++subArray;
}
++baseArray;
}
}
}
void echoArray(int* _array, int size)
{
printf("\r\n");
while(0 < size--){
printf("%d\r\n", *_array++);
}
}
void initArray(int* _array, int size)
{
while(0 < size--){
*_array++ = 0;
}
}
void reSortArray(int* baseArray, int* positive, int* negative)
{
int p = 0, n = 0;
for(int i = 0; (i < aSize); i++)
{
if((*(baseArray + i) < 0) && ((*(positive + p)) != 0)){
*(baseArray + i) = *(positive + p);
++p;
}else
if((*(baseArray + i) > 0) && ((*(negative + n)) != 0)){
*(baseArray + i) = *(negative + n);
++n;
}
}
}
|
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 01/03/10 в 19:50 |
а хз актуально ли это еще, но +8 поставил
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |
|
Спонсор раздела
|