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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 15:46   #1
Akmall
 
Регистрация: 04.12.2010
Сообщений: 5
По умолчанию С++ нужна корректировка\доработка кода.

Привет, помогите исправить пару программок.
1) Нужно изменить так, что бы был возможен ввод значений с клавиатуры.
Код:
#include <iostream>
#include <conio.h>
#include <time.h>
using std::cout;
using std::endl;
const int n = 10;
float arr[n];
const double min = -10.0; // нужен ввод с клавиатуры
const double max = 10.0; // нужен ввод с клавиатуры

template <class X> void arrOutput(X a[])
{
	int i;
	for(i = 0; i < n; i++) cout << a[i] << " ";
	cout << endl << endl;
}

template <class X> void minFind(X a[])
{
	double emin = 0; 
	int i, num = 0;
	for(i = 0; i < n; i++)
		if(a[i] < emin) {num = i; emin = a[i];}
	cout << "Номер минимального элемнта массива: " << num << endl;
	cout << "Значение минимального элемнта массива: " << emin << endl << endl;
}

template <class X> void sumAdd(X a[])
{
	int i, num = -1, onum = -1;
	float sum = 0;
	for(i = 0; i < n; i++)
		if(a[i] < 0)
			if(num == -1) num = i;
			else if(onum == -1) {onum = i;break;}
	if(onum == -1) sum = 0;
	else for(i = num + 1; i < onum; i++) sum += a[i];
	cout << "Cумма элементов между первым и вторым отрицательными элементами: " << sum << endl << endl;
}


template <class X> void newArr(X a[])
{
	int arrhead = 0, i;
	float etemp;
	for(i = 0; i < n; i++)
	{
		if(fabs(a[i]) < 1)
		{
        	while(arrhead == n-1 && arrhead < n-1) arrhead++;
            for(int k = i; k < arrhead; k++) a[k] = a[k+1];				
			etemp = a[arrhead];
			a[arrhead] = a[i];
			a[i] = etemp;
			arrhead++;
		}
	}
	cout << "Преобразование массива таким образом, что сначала располагаются все элементы, модуль которых не превышает 1, а потом — все остальные: " << endl;
	arrOutput(arr);
}


int main()
{
	int i;
	setlocale(LC_ALL,"Russian");
	srand((unsigned)time(NULL));
	for (i = 0; i < n; i++) arr[i] = (double)rand() / (RAND_MAX + 1) * (max - min) + min;
	cout << "Исходный сгенерированный массив: " << endl;
	arrOutput(arr);
    minFind(arr);
	sumAdd(arr);
	getch();
	return 0;
}
2) Задание: Характеристикой столбца целочисленной матрицы назовём сумму модулей его отрицательных нечётных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик.
Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.
Код:
#include "stdio.h"
#include "conio.h"


int main()
{
int i, j, S=0,B[10], C[10] ;
int Matr[3][3];
printf("Vvedite matricy: \n");
for(i=0;i<3;i++){
for(j=0;j<2;j++)
{
scanf("%d ", &Matr[i][j]);
}
}

for(j=0; j<2; j++) 
{
for (i=0; i<3; i++)
{
if (Matr[i][j]<0) {B[j]=1; break;}

}
}
printf("Summa stolbcov, gde xotya bi odin element < 0:\n");
for(j=0; j<3; j++)
{S=0; if (B[j]!=0)
{
for (i=0; i<3; i++)
{S+=Matr[i][j];}
C[j]=S;
printf("Summa stolbec nomer %d = %d\n",j+1,C[j]);

}
}
getch();
return 0;
}
Код работает правильно, но не может найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.
И еще, препод отметил эти строки:
Код:
for(j=0; j<2; j++) 
{
for (i=0; i<3; i++)
не могу понять что не так в них?
Akmall вне форума Ответить с цитированием
Старый 19.12.2010, 16:34   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Код:
cin>>min;
cin>>max;
Цитата:
Сообщение от Akmall Посмотреть сообщение
И еще, препод отметил эти строки:
Код:
for(j=0; j<2; j++) 
{
for (i=0; i<3; i++)
не могу понять что не так в них?
У тебя матрица 3х3 , но этим ты не проверяешь все элементы матрицы !
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---

Последний раз редактировалось Stilet; 19.12.2010 в 18:22.
andrewpalkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ нужна корректировка\доработка кода. Akmall Помощь студентам 3 10.12.2010 22:51
массивы на ассемблере...нужна доработка,не справляюсь A_L_E_N_K_A Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 28.11.2010 20:15
Обучение распознаванию программы. Корректировка кода. artemavd Общие вопросы Delphi 0 25.06.2010 20:28
Нужна корректировка Verwolf Помощь студентам 4 15.07.2009 19:23
Нужна помощь в написании кода Михаил Юрьевич Общие вопросы Delphi 2 27.12.2007 09:32