Одномерные Массивы В С++

  • Автор темы NEON
  • Дата начала
N

NEON

#1
надо написать несколько программок, используя один и тот же массив, используется датчик случайных чисел, все это в консольном варианте....
1)добавление: к элементов в конец массива
2)перестановка:поменять местами минимальный и максимальный элементы
3)поиск:первый отрицательный
4)сортировка:простое включение, тут у меня есть наработка про поиск первого отрицательного элемента, но видимо что то не так записано, в консоли не отображаются значения...



#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>

char* Rus(const char* text);

void main()
{
int a[100];
int i,n;
randomize();
cout << Rus(" Введите n: ");
cin >> n;
for (i=0; i<n; i++) a=random(100)-random(100);
if(a<0) cout << a <<" ";
getch();
}

char bufRus[256];
char* Rus(const char* text)
{
CharToOem(text,bufRus);
return bufRus;
}
 
W

Whatka

#2
C++:
#include <iostream>
using namespace std;
void Insert(int *a,int n)//Сортировка вставками
{
int e,j;
for(int i=0;i<n;i++)
{
e=a[i];
j=i-1;
while((j>=0)&&(a[j]>e))
{
a[j+1]=a[j];
j=j-1;
a[j+1]=e;
}
}
}

void main()
{
setlocale(LC_ALL,".1251");
int *a,n,size,min,max;
cout<<"Введите колличество элементов массива: ";
cin>>n;
cout<<"Введите максимальный(по модулю)размер элементов массива: ";
cin>>size;
a=new int[n];

for (int i=0; i<n; i++)			//заполнение массива 
a[i]=rand()%size-rand()%size;	//случайными числами


cout<<"Массив имеет вид:\n";
for (int i=0; i<n; i++)			//вывод
cout<<a[i]<<" ";				//массива
cout<<endl;


cout<<"Отрицательные элементы массива: ";
for (int i=0; i<n; i++) 
{
if(a[i]<0) 
{
cout<<a[i]<<" ";
//break;//для вывода только первого отрицательного элемента
}
}
cout<<endl;


int i1(0),i2(0);
min=a[0];
for (int i=0; i<n; i++)			//поиск мин элемента
{
if(a[i]<min)
{
min=a[i];
i1=i;
}
}
cout<<"Min "<<min<<endl;


max=a[0];
for (int i=0; i<n; i++)			//поиск макс элемента
{
if(a[i]>max)
{
max=a[i];
i2=i;
}
}
cout<<"Max "<<max<<endl;

a[i2]=min;//меняем местами
a[i1]=max;//макс и мин
Insert(a,n);//сортировка

cout<<"Отсортированный массив имеет вид:\n";
for (int i=0; i<n; i++)			//вывод
cout<<a[i]<<" ";				//массива
cout<<endl;


int k,*b;
cout<<"Сколько эллементов хотите добавить? ";
cin>>k;
b=new int[n+k];
for(int i=0;i<n;i++)
b[i]=a[i];

cout<<"Введите "<<k<<" элемента(ов)\n";
for(int i=n;i<n+k;i++)
cin>>b[i];


cout<<"Массив имеет вид:\n";
for(int i=0;i<n+k;i++)
cout<<b[i]<<" ";				
cout<<endl;
}
 
N

NEON

#4
int k,*b;
    cout<<"Сколько элементов хотите добавить? ";
    cin>>k;
    b=[n+k];
    for(int i=0;i<n;i++)
        b=a;

    cout<<"Введите "<< k<<" элемента(ов)\n";
    for(int i=n;i<n+k;i++)
        cin>>b;
    

    cout<<"Массив имеет вид:\n";
    for(int i=0;i<n+k;i++)
    cout<<b<<" ";                
    cout<<endl;
программа не работает
 
W

Whatka

#5
конечно не будет
ты кусок кода вырвал
тем более у меня не так написано

+ хоть думай в этом куске n неизвестно
и массив a