Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ формирование массива с++

Автор: amega 24.02.2010 22:40

Добрый день!
есть задание с формированием массива:
Разместить все элементы с положительными значениями в левой части массива, нули - в правой, а элементы с отрицательными значениями - между ними;

вот я прохожу по массиву и путем сдвигов формирую новый масив


#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;
}


но выдает ошибки, не могу понять какие?
Прикрепленное изображение
с++ изучаю ток 2 неделю... еще понять не могу что они значат.





Автор: Client 24.02.2010 23:01

#include <stdio.h>
#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;
}
Можно сделать как volvo недавно показал "хитрую сортировку пузырьком" smile.gif

Автор: amega 24.02.2010 23:05

Цитата
Можно сделать как volvo недавно показал "хитрую сортировку пузырьком"

...?

Автор: Client 24.02.2010 23:13

http://forum.pascal.net.ru/index.php?showtopic=25433 на паскале написано, надо чуть подправить

Автор: Lapp 25.02.2010 3:53

Цитата(amega @ 24.02.2010 18:40) *
но выдает ошибки, не могу понять какие?
... еще понять не могу что они значат.

Например, вот тут у тебя одна из самых популярных ошибок, наиболее характерная для тех, кто приходит с Паскаля:
        if (arr[i]=0){

Проверка на равенство должна осуществляться знаком "==", а не "=":
        if (arr[i]==0){