Добрый день!
есть задание с формированием массива:
Разместить все элементы с положительными значениями в левой части массива, нули - в правой, а элементы с отрицательными значениями - между ними;
вот я прохожу по массиву и путем сдвигов формирую новый масив
#include <stdio.h>
#define size_arr 10
int main(){
int arr[size_arr];
int i=0;
while (i<size_arr){
printf("enter element %d: ",i);
scanf("%d",&arr[i]);
i++;
}
int buf;
for (i=0;i<size_arr;i++){
buf=arr[i];
int j;
if (arr[i]>0) {
for (j=i;j>1;i--){
arr[j]=arr[j-1];
}
arr[0]=buf;
}
if (arr[i]=0){
for (j=i;j<size_arr-1;i++){
arr[j]=arr[j+1];
}
arr[9]=buf;
}
}
for (i=0;i<size_arr;i++){
printf("%d%s",arr[i]," ");
}
return 0;
}
#include <stdio.h>Можно сделать как volvo недавно показал "хитрую сортировку пузырьком"
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
int a[10]={1,-2,3,0,-1,-2,-3,0,-5,7};
int b[10];
int i,k;
k=0;
for (i=0; i<10; i++){
if (a[i]>0) {
b[k]=a[i];
k++;
}
}
for (i=0; i<10; i++){
if (a[i]==0) {
b[k]=a[i];
k++;
}
}
for (i=0; i<10; i++){
if (a[i]<0) {
b[k]=a[i];
k++;
}
}
for (i=0; i<10; i++){
cout << b[i] <<'\n';
}
return 0;
}
http://forum.pascal.net.ru/index.php?showtopic=25433 на паскале написано, надо чуть подправить
if (arr[i]=0){
if (arr[i]==0){