Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2015, 18:45   #1
shadow155
Пользователь
 
Регистрация: 11.06.2015
Сообщений: 14
По умолчанию

Необходимо переделать (создать один стационарный указатель) , а как не знаю. Может кто код немного подправить и обьяснить?
После введения из клавиатуры произвольного одномерного массива целых чисел (в пределах знакового целого типа) вывести на экран непарные из них (по 10 в строке у виде столбцов), отсортированные за убыванием. Введение каждого числа завершуеться нажатиям <Enter>, введение прекращается введением числа 0. Одинаковые числа выводятся один раз.

Код:
#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;
void sort_selection(int d[], int f)
{
int i,j,k,x;
for(i=0;i<f-1;i++)
{
k=i;
x=d[i];
for(j=i+1;j<f;j++)
if(d[j]>x)
{
k=j;
x=d[j];
}
d[k]=d[i];
d[i]=x;
}
}
void ORZ(int c[], int q) 
{
int y=0,s=0,n[100]={0,};
for(int i=0,flag=0;i<q;i++) 
{
for(int j=i-1;j>=0;j--) 
{
if(c[i]==c[j]) 
{
flag=1;
}
}
if(flag==0) 
{
n[s++]=c[i];
++y;
}
flag=0; 
}
for(int i=0;i<y;i++)
{
printf("%4d%c",n[i],(i%10==9)?'\n':' ');
}
}
void main(void)
{
int d[500]={0},i=-1,j=0,f=0,c[500]={0},z=0,q=0; 
cout«"vvedite massiv zakanchivaya cifroy 0"«endl;
do
{ 
++i;
cin»d[i];
f++;
}
while(d[i]!=0);
cout«endl«"vsego vvedeno elmentov: "«f«endl; 
sort_selection(d,f);
for(int k=0;k<f;k++)
{
if(d[k]%2!=0)
{
q++;
c[z++]=d[k];
}
}
cout«"neparnie:"«endl;
ORZ(c,q);
_getch();
}
Необходимо переделать (создать один стационарный указатель) , а как не знаю. Может кто код немного подправить и обьяснить?

Организовать двоичный поиск элемента А в произвольном одномерном массиве целых чисел.
Код:
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "stdio.h"
using namespace std;

int BinarySearch(int A[], int key,int N)
{
int left=0, right=N-1, mid; 
while (left<=right)
{
mid=left+(right-left)/2;
if (key<A[mid])
right=mid-1;
else 
if (key>A[mid]) 
left=mid+1; 
else 
return mid;
}
return -1;
}
//главная функция
void main()
{
setlocale(LC_ALL,"Rus");
int i, key,N;
int A[100];
cin»N;
for (i=0; i<N; i++)
cin»A[i];
cout«"Искомый элемент > "; 
cin»key; //ввод ключа
if (BinarySearch(A, key,N)==-1)
cout«"\nЭлемент не найден";
else 
cout«"\nНомер элемента: "«BinarySearch(A, key,N);
_getche();
}
Необходимо переделать (создать один стационарный указатель) , а как не знаю. Может кто код немного подправить и обьяснить?
В одномерном массиве, вводимом с клавиатуры и состоящем из n действительнных элементов, вычислить:
1) номер минимального элемента массива;
2) сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
Переделать массив таким образом, чтобы сначала располагались все элементы
Модуль которых не превышает 1, а потом все остальные.В одномерном массиве, вводимом с клавиатуры и состоящем из n действительнных элементов, вычислить:
1) номер минимального элемента массива;
2) сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
Переделать массив таким образом, чтобы сначала располагались все элементы
Модуль которых не превышает 1, а потом все остальные.
Код:
#include "stdafx.h"
#include "conio.h"
#include "iostream"
using namespace std;

float boom(float b[],int N)
{int a=0;
float min=b[0];

for(int i=0;i<N;i++)
{
if(min>b[i])
{
min=b[i];
a=i;
}
}
return a;
}
float death(float d[], int N)
{float k,a,s=0,b;
for(int i=0;i<N;i++)
{
if(d[i]<0)
{
b=i;
break;
}
}
for(int i=b+1;i<N;i++)
{
if(d[i]<0)
{
k=i;
break;
}
}
for(int i=b+1;i<k;i++)
{
s=s+d[i];
}
return s;
}
void sword (float a[],int N)
{int j=0;
float roc[100]={0};
for(int i=0;i<N;i++)
{
if(abs(a[i])<=1)
{
roc[j++]=a[i];
}
}
for(int i=0;i<N;i++)
{
if(abs(a[i])>1)
{
roc[j++]=a[i];
}
}
cout«"uporyadochenniy massiv: ";
for(j=0;j<N;j++)
{
cout«roc[j]«" ";
}
}

void main(void)
{
float rok[100]={0};
int N; 
cin»N;
cout«"vvedite massiv \n";
for(int i=0;i<N;i++)
{
cin»rok[i];
}

cout«endl«"nomer min elementa: "«boom(rok,N);

cout«endl«"summa: "«death(rok,N)«endl;
sword(rok,N);


_getch();
}

Последний раз редактировалось Stilet; 01.09.2015 в 19:21.
shadow155 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатели. Fatalita Помощь студентам 1 15.10.2012 16:17
указатели renzo111 Общие вопросы Delphi 6 21.04.2012 01:14
указатели Артэс Общие вопросы C/C++ 11 07.02.2010 16:47
Указатели IceBreaker Общие вопросы C/C++ 9 05.02.2010 09:11
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39