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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2009, 18:07   #1
Skrip
Пользователь
 
Аватар для Skrip
 
Регистрация: 04.06.2009
Сообщений: 45
По умолчанию

как изменить тип переменной в ходе программы?

Код:
#include<iostream.h>
#include<math.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

char* Rus(const char* text);

void main ()
{
	const int array=6;
	int c,t=0,l=0;i,s=0;
	float k[array];
	int i;
	
	cout<<Rus("Ââåäèòå ïàðàìåòð Ñ")<<endl;
	cin>>c;
	cout<<Rus("Ââåäèòå ýëåìåíòû ìàññèâà")<<endl;
	for (i=0;i<array;i++) //öèêëè÷åñêèé ââîä ýëåìåíòîâ ìàññèâà
	{
		cout<<i+1<<Rus("-é ýëåìåíò = ");
		cin>>k[i];
		if (k[i]<c) t++;//ñ÷åò îòðèöàòåëüíûõ ýëåìåíòîâ
		s=s+int(k[i]); //ñóììèðîâàíèå ýëåìåíòîâ
		if (k[i]<0)
		{
			s=0;
			l=1;
		}
	}
	cout<<Rus("Âàø ìàññèâ:")<<endl;
	for (i=0;i<array;i++) //âûâîä ìàññèâà
	cout<<k[i]<<" ";
	cout<<endl;
	cout<<Rus("êîëè÷åñòâî ýëåìåíòîâ ìåíüøå ")<<c<<" = "<<t<<endl;
	if (l==0) cout<<Rus("îòðèöàòåëüíûõ ýëåìåíòîâ íåò")<<endl;

	 else
	cout<<Rus("Ñóììà ýëåìåíòîâ ïîñëå ïîñëåäíåãî îòðèöàòåëüíîãî = ")<<s<<endl;
	for (i=0;i<array/2;i++)
	{
		l=k[i];
		k[i]=k[array-1-i];
		k[array-1-i]=l;
	}
	cout<<Rus("îáðàòíûé ìàññèâ:")<<endl;
	for (i=0;i<array;i++)
		cout<<k[i]<<" ";
	cout<<endl;

	system("PAUSE");		//Çàäåðæêà ïåðåä âûõîäîì
}

char bufRus[256];
char*Rus(const char*text)
{
	CharToOem(text, bufRus);
	return bufRus;
}
здесь код, он выдает ошибку.. помогите!
Я спокойный, вежливый и уравновешенный человек

Последний раз редактировалось Sazary; 14.06.2009 в 18:39.
Skrip вне форума Ответить с цитированием
Старый 14.06.2009, 18:41   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
int c,t=0,l=0;i,s=0;
опечатались?
Код:
int i;
двойное объявление - i объявлена выше.
Код:
for (i=0;i<array/2;i++)
	{
		l=k[i];
		k[i]=k[array-1-i];
		k[array-1-i]=l;
	}
присваиваете целочисленной переменной вещественное значение.
Если очень хочется, то можно написать вот так:
Код:
l=(int)k[i];
или объявите l как double.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 14.06.2009, 18:47   #3
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

или в стиле c++
Код:
l=static_cast <int> (k[i]);
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 14.06.2009, 19:13   #4
Skrip
Пользователь
 
Аватар для Skrip
 
Регистрация: 04.06.2009
Сообщений: 45
По умолчанию

Код:
#include<iostream.h>
#include<math.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

char* Rus(const char* text);

void main ()
{
	const int array=6;
	int c,t=0,i,l=0,s=0;
	float k[array];
	int i;
	
	cout<<Rus("Ââåäèòå ïàðàìåòð Ñ")<<endl;
	cin>>c;
	cout<<Rus("Ââåäèòå ýëåìåíòû ìàññèâà")<<endl;
	for (i=0;i<array;i++) //öèêëè÷åñêèé ââîä ýëåìåíòîâ ìàññèâà
	{
		cout<<i+1<<Rus("-é ýëåìåíò = ");
		cin>>k[i];
		if (k[i]<c) t++;//ñ÷åò îòðèöàòåëüíûõ ýëåìåíòîâ
		s=s+(int)k[i]; //ñóììèðîâàíèå ýëåìåíòîâ
		if (k[i]<0)
		{
			s=0;
			l=1;
		}
	}
	cout<<Rus("Âàø ìàññèâ:")<<endl;
	for (i=0;i<array;i++) //âûâîä ìàññèâà
	cout<<k[i]<<" ";
	cout<<endl;
	cout<<Rus("êîëè÷åñòâî ýëåìåíòîâ ìåíüøå ")<<c<<" = "<<t<<endl;
	if (l==0) cout<<Rus("îòðèöàòåëüíûõ ýëåìåíòîâ íåò")<<endl;

	 else
	cout<<Rus("Ñóììà ýëåìåíòîâ ïîñëå ïîñëåäíåãî îòðèöàòåëüíîãî = ")<<s<<endl;
	for (i=0;i<array/2;i++)
	{
		l=(int)k[i];
		(int)k[i]=k[array-1-i];
		(int)k[array-1-i]=l;
	}
	cout<<Rus("îáðàòíûé ìàññèâ:")<<endl;
	for (i=0;i<array;i++)
		cout<<k[i]<<" ";
	cout<<endl;

	system("PAUSE");		//Çàäåðæêà ïåðåä âûõîäîì
}

char bufRus[256];
char*Rus(const char*text)
{
	CharToOem(text, bufRus);
	return bufRus;
}
я так написала.. но не работает..
__STDC__, это где надо написать?
Я спокойный, вежливый и уравновешенный человек
Skrip вне форума Ответить с цитированием
Старый 14.06.2009, 19:15   #5
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Цитата:
Сообщение от Skrip Посмотреть сообщение
я так написала.. но не работает..
__STDC__, это где надо написать?
я не смотрел код, просто написал как еще можно преобразовать тип...
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 14.06.2009, 19:24   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Skrip, да вам же компилятор все говорит! И я сказал в предыдущем посте.
Код:
int c,t=0,i,l=0,s=0;
float k[array];
int i;
двойное объявление i.

Код:
l=(int)k[i];
(int)k[i]=k[array-1-i];
(int)k[array-1-i]=l;
Это зачем? Притом неправильно. И не нужно.
Вместо приведения типов объявите l как float.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ссылочные типы senchakv Паскаль, Turbo Pascal, PascalABC.NET 0 13.06.2009 21:50
Комбинированные типы melikyan Помощь студентам 5 10.02.2009 21:41
Типы данных nedden Помощь студентам 2 12.11.2008 17:18
Строковые типы SunKnight Общие вопросы Delphi 8 07.05.2008 15:46