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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.02.2009, 19:09   #1
ManInBlack
Пользователь
 
Регистрация: 20.10.2008
Сообщений: 25
По умолчанию Одномерный массив (СИ)

помогите подправить код или подскажите что делать, заранее спасибо

1)количество элементов массива, меньших С;
2)сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом - все остальные.
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int f1(double *, int n);
int f2(double *, int n);
double f3(double *, int n);
void main()
{
clrscr();
const int n=15;
double s[]={1.2, -1.8, -4.5, 8.5, -0.1, -0.9, 9.7, -9.8, 0.2, 3.5, 5.7, -3.8, -6.0, 4.2, 4.3, -5.1};
int KL, sum, x;
double a[];
KL=f1(s1, n);
sum=f2(s2, n);
a[]=f3(s3, n);
}


int f1 (double *s1[], int n)
{
int Z=0, i, c=1;
for(i=0; i<=n; i++)
	{
		if(s1[i]<c)
		{
		Z++;
		}
	}
printf("Z=%s\n", Z);
}

int f2 (double *s2[], int n)
{
int H=0, i, y;
for(i=0; i<=n; i++)
	{
	if(s2[i]<0)
	y=i;
	}
for(i=y; i<=n; i++)
	{
	H=H+int(s2[i]);
	}
printf("H=%s\n", H);
}

double f3(double *s3[], int n)
{
int i, u;
double g[], pr=0;
for(i=0; i<=n; i++)
{
if(pr<s3[i])
pr=s3[i];
u=i;
}
for(i=0; i<=n; i++)
{
if(abs(s3[u])<(0.8*s3[i]))
g[]=s3[i];
}
for(i=0; i<=n; i++)
{
if(abs(s3[u])>=(0.8*s3[i])
g[]=s3[i];
}
printf("g[]=%s", g[]);
}
ManInBlack вне форума
Старый 23.02.2009, 19:57   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ошибок много.. Перечислю несколько:
Код:
printf("H=%s\n", H);
...................
printf("g[]=%s", g[]);
Нельзя так!

Код:
KL=f1(s1, n);
sum=f2(s2, n);
a[]=f3(s3, n);
В главной функции не определены s1,s2 и s3.

Код:
double a[];
Вы объявляете массив, но не выделяете память.

Исправил. Все работает.
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int f1(double *, int n);
int f2(double *, int n);
void f3(double *,double *, int n);
int main()
{
const int n=16;
double s[]={1.2, -1.8, -4.5, 8.5, -0.1, -0.9, 9.7, -9.8, 0.2, 3.5, 5.7, -3.8, -6.0, 4.2, 4.3, -5.1};
int KL, sum, x;
double *a;

KL=f1(s, n);
sum=f2(s, n);
f3(s, a, n);
delete[] a;
getch();
return 0;
}


int f1 (double s1[], int n)
{
int Z=0, i, c=1;
for(i=0; i<n; i++)
	{
		if(s1[i]<c)
		{
		Z++;
		}
	}
printf("Z=%d\n", Z);
}

int f2 (double s2[], int n)
{
int H=0, i, y;
for(i=0; i<n; i++)
	{
	if(s2[i]<0)
	y=i;
	}
for(i=y; i<n; i++)
	{
	H=H+int(s2[i]);
	}
printf("H=%d\n", H);
}
//---------------------------------

void f3(double s3[],double g[], int n)
{
int i, u, cnt=0;
double pr;

g = new double[sizeof(s3)/sizeof(s3[0])];

pr = s3[0];
u = 0;
for(i=0; i<n; i++)
 {
 if(s3[i]>pr)
  {
   pr=s3[i];
  u=i;
 }
 }
for(i=0; i<n; i++)
 {
 if(fabs(s3[i])-fabs(0.8*s3[u])>=0)
    g[cnt++]=s3[i];

 }
for(i=0; i<n; i++)
 {
 if(fabs(s3[i])-fabs(0.8*s3[u])<0)
  g[cnt++]=s3[i];
 }
printf("g[]= ");
for(i=0;i<n;i++)
 printf("%4.1lf ", g[i]);
}
Только сомнительно использование fabs (взятие по модулю). В задании сказано:
Цитата:
отличающиеся от максимального не более чем на 20%
а про знак ничего. Думаю, модуль брать не нужно.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 23.02.2009 в 20:26. Причина: исправил. Теперь все работает.
Sazary вне форума
Старый 24.02.2009, 20:58   #3
ManInBlack
Пользователь
 
Регистрация: 20.10.2008
Сообщений: 25
По умолчанию

спасибо большое
ManInBlack вне форума
Старый 20.03.2011, 14:03   #4
greendoom
Пользователь
 
Аватар для greendoom
 
Регистрация: 25.04.2010
Сообщений: 11
По умолчанию

спасибо+++++
greendoom вне форума
Старый 21.03.2011, 18:34   #5
seilova
Пользователь
 
Аватар для seilova
 
Регистрация: 17.02.2011
Сообщений: 22
По умолчанию

1. Дан одномерный массив. Переписать его элементы в обратном порядке без использования дополнительного массива
2. В массиве хранится информация о максимальной скорости каждой из 40 марок легковых автомобилей. Определить скорости двух самых быстрых автомобилей..подскажите пожалуйста как их сделать(((
seilova вне форума
Старый 21.03.2011, 23:09   #6
Trust_357
Пользователь
 
Регистрация: 10.03.2011
Сообщений: 68
По умолчанию

Код:
#include<iostream>
#include<time.h>
using namespace std;
void main()
{
	setlocale(LC_CTYPE, "Rus");
	srand((unsigned)time(NULL));
	int n=0;
	cout<<"\t\tВведите колличество элементов массива\n\n";cin>>n;
	int *mas=new int[n];
	for(int i=0;i<n;i++)
	{
		mas[i]=rand()%n;
		cout<<mas[i]<<" ";
	}
	cout<<"\n\n";
	for(int i=0,m=n-1;i<n/2;i++,m--)
	{
		int t=mas[i];
		mas[i]=mas[m];
		mas[m]=t;
	}
	for(int i=0;i<n;i++)
		cout<<mas[i]<<" ";
	cout<<"\n\n";
        delete[]mas;
}

Последний раз редактировалось Trust_357; 21.03.2011 в 23:16.
Trust_357 вне форума
Старый 21.03.2011, 23:52   #7
Trust_357
Пользователь
 
Регистрация: 10.03.2011
Сообщений: 68
По умолчанию

Код:
#include<iostream>
#include<time.h>
using namespace std;
int f(int e,int s)
{
	return e-=s;
}
void main()
{
	setlocale(LC_CTYPE, "Rus");
	srand((unsigned)time(NULL));
	int s=0,e=0;//диапазон скорости машин
	const int n=40;
	int mas[n]={0};
	int m1=mas[0],m2=0;
	cout<<"\t\tВведите скорость самой быстрой машины =";cin>>e;cout<<"\n\n";
	cout<<"\t\tВведите скорость самой медленной машины =";cin>>s;cout<<"\n\n";
	for(int i=0;i<n;i++)
	{
		mas[i]=rand()%f(e,s)+s;
		cout<<mas[i]<<" ";
	}
	cout<<"\n\n";
	for(int i=1;i<n;i++)
	{
		if(m1<mas[i])
		{
			m2=m1;
			m1=mas[i];
		}
	}
	cout<<"\t\tНаивысшая скорость "<<m1<<"\t\tпосле неё "<<m2<<"\n\n";
}
Trust_357 вне форума
Старый 08.06.2013, 12:21   #8
hidden_95
Новичок
Джуниор
 
Регистрация: 08.06.2013
Сообщений: 1
Вопрос

Помогите пожалуйста написать программку на Си,я чайник в этом(
В одномерном массиве, состоящем из n вещественных элементов, упорядочить элементы массива по убыванию модулей элементов
hidden_95 вне форума
Старый 08.06.2013, 17:43   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
hidden_95
Создай свою тему. Не лезь в чужую.
I'm learning to live...
Stilet вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив xxxPascalxxx Помощь студентам 3 18.01.2009 15:23
Одномерный массив. Dmitrij Паскаль, Turbo Pascal, PascalABC.NET 1 28.11.2008 19:54
одномерный массив ldx Паскаль, Turbo Pascal, PascalABC.NET 4 06.06.2008 17:45
одномерный массив fatdog Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 23.02.2008 10:05
Массив Одномерный flait111 Помощь студентам 3 15.12.2007 14:08