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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2011, 22:31   #1
Ciel
 
Регистрация: 17.12.2011
Сообщений: 7
По умолчанию Одномерные массивы, С.

Доброго времени суток всем читающим эту тему.
Разбираюсь с задачей на одномерные массивы(язык пр. - C), суть следующая:
"Даны массивы Z(30) и R(30). Расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z."
Собственно, вот что получилось:

Код:
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define ZMAX 30
#define RMAX 30
void main(void)
{ float z[ZMAX];
float r[RMAX];
int n;
int i;
int a;
float r1;
clrscr();
printf("\nVvedite kolichestvo chisel:\n");
scanf("%d",&n);
printf("Vvedite chisla:\n");
for (i=0;i<n;i++)
scanf("%f',&z[i]);
{z[i]=r[i];}
for (a=n-1;a<0;a++)   
for (i=0;i<a;i++)
if (r[i]<r[i+1])
{r1=r[i]; r[i]=r[i+1]; r[i+1]+r1;}
printf ("Uporyadochennie chisla massiva Z:\n");
for (i=0;i<n;i++)
printf("%f",&r[i]);
getch();
}
При выполнении выводится "Uporyadochennie chisla massiva Z:0.0000000.000000.0000"

Больше чем уверен, что зафейлил где-то здесь:
Код:
for (a=n-1;a<0;a++)   
for (i=0;i<a;i++)
if (r[i]<r[i+1])
{r1=r[i]; r[i]=r[i+1]; r[i+1]+r1;}
или здесь(хотя сомневаюсь в этом):
Код:
{z[i]=r[i];}
И все-же, не могли бы вы подсказать и рассказать где именно зафейлил (если не затруднит, строкой кода) и возможный вариант исправления.Да даже указания на фейл будет достаточно.

Спасибо.
Ciel вне форума Ответить с цитированием
Старый 17.12.2011, 23:33   #2
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Код:
#include "stdafx.h"
using namespace std;

const int ZMAX = 30;
const int RMAX = 30;

int _tmain(int argc, _TCHAR* argv[])
{
	float z[ZMAX];
	float r[RMAX];
	int n,i,j;
	float r1;

	cout << "Vvedite kolichestvi chisel:\n";
	cin >> n;

	cout << "Vvedite chisla:\n";
	for (i=0; i<n; i++)
		cin >> z[i];

	// массив z
	for (i=0; i<n; i++)
		cout << z[i] << " ";
	cout << endl;

	// сначала положительные расставим в массив r
	j=0;	// индекс для массива r
	for (i=0; i<n; i++)
		if (z[i] > 0)
			r[j++] = z[i];

	// теперь отрицательные
	for (i=0; i<n; i++)
		if (z[i] < 0)
			r[j++] = z[i];

	// результат массива r
	for (i=0; i<n; i++)
		cout << r[i] << " ";
	cout << endl;

	cin.get();
	cin.get();
	return 0;
}
Это лишнее. В массиве z затираються числа
Код:
{z[i]=r[i];}

Последний раз редактировалось viron; 17.12.2011 в 23:36.
viron вне форума Ответить с цитированием
Старый 17.12.2011, 23:44   #3
Ciel
 
Регистрация: 17.12.2011
Сообщений: 7
По умолчанию

Большое вам спасибо за оперативный отклик в настолько позднее время суток!
Ciel вне форума Ответить с цитированием
Старый 17.12.2011, 23:58   #4
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Цитата:
Большое вам спасибо за оперативный отклик в настолько позднее время суток!
Да незачто! Удачи вам
viron вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы (C++) PriZRak_vk Помощь студентам 9 05.12.2011 23:40
одномерные массивы Васильева Зинаида Помощь студентам 1 22.11.2010 19:44
[C] Одномерные массивы koshkarjov Помощь студентам 4 29.09.2010 16:54
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12