вот на код С:
int main(){
int aaa[15], ii, kk, ssign, bbb;
// заполним массив aaa
ssign = 1;
for( ii = 0; ii < 15; ii++) {
aaa[ii]=ii*ssign;
printf("%d ", aaa[ii]);
ssign = -ssign;
}
printf("\n");
// переместим отрицательные к началу массива
for( ii = 0; ii < 15; ii++) {
if(aaa[ii]>0) {
bbb = aaa[ii];
for(kk=ii;kk<15;kk++) {
if(aaa[kk]<0){
aaa[ii]=aaa[kk]; // тут и меняем
aaa[kk]=bbb;
break;
}
}
if (kk==15){
break; // отрицательные элементы закончились)) )
}
}
}
// распечатаем результат
for( ii = 0; ii < 15; ii++) {
printf("%d ", aaa[ii]);
}
return 0;
}
а вот результат работы:
# 1: hide show edit 3 seconds ago
result: Success time: 0s memory: 1720 kB returned value: 0
input: no
output:
0 -1 2 -3 4 -5 6 -7 8 -9 10 -11 12 -13 14
0 -1 -3 -5 -7 -9 -11 -13 8 2 10 6 12 4 14
Другие языки программирования и технологии
Помогите написать текст программы на языке С
Ну, видно же - два индекса k - для текущего элемента, m - для текущей позиции отрицательных элементов. И промежуточноя переменная temp - для обмена элементов массива. А дальше просто
int k, m, temp;
For k := 1 to N do
If A[ k ] < 0 then
begin
temp := A[ k ];
A[ k ] := A[ m ];
A[ m ] := temp;
m := m + 1;
end;
И все.
int k, m, temp;
For k := 1 to N do
If A[ k ] < 0 then
begin
temp := A[ k ];
A[ k ] := A[ m ];
A[ m ] := temp;
m := m + 1;
end;
И все.
Похожие вопросы
- Помогите, пожалуйста, написать текст программы на языке высокого уровня (Basic или Pascal)!
- Помогите написать текст программы на С++
- Помогите написать текст программы.
- Помогите написать (исправить) программу на языке Си++
- Помогите написать 2 программы на языке pascal!
- помогите написать элементарную программу на языке с или с++
- помогите написать простые программы на Qbasic
- Помогите пожалуйста, в тексте программы на языке С++,есть синтаксическуя ошибка, никак не могу исправить.
- Помогите написать пару программ на СИ
- Помогите с текстом программы на Turbo Pascal