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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2010, 16:15   #1
Vergil
Пользователь
 
Аватар для Vergil
 
Регистрация: 09.11.2009
Сообщений: 19
По умолчанию проблемы с if

Код:
//---------------------------------------------------------------------------
#include <iostream.h>
#include<stdio.h>
#include <iomanip.h>
#include <windows.h>
#include <winuser.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
char* rus(const char* text)
{char *bufRus=new char[strlen(text)];
 CharToOem(text, bufRus);
 return bufRus;}
int main(int argc, char* argv[])
{int **matrix, **matrix1, *mat, str[30], n=0, m=0, i=0, j=0, mg=0, t=0, y=0, k=0;
cout<<rus("Введите количество остановок: ");
cin>>n;
cout<<rus("Введите количество маршрутов: ");
cin>>m;
	matrix=new int*[m];
	for(i=0;i<m;i++)
	matrix[i]=new int[n];
	mat=new int[n*m];
for (i = 0; i < m; i++){
cout<<rus("Введите количество остановок в ")<<i+1<< rus(" маршруте: ");
cin>>mg;
str[i]=mg;
t=mg+t-1;
cout<<rus("Остановки ")<<i+1<<rus("-ого маршрута через пробел")<<endl;
for (j = 0; j < mg; j++) {cin>>mat[y]; y++;}}

	matrix1=new int*[t];
	for(i=0;i<t;i++)
	matrix1[i]=new int[2];
	matrix1[0][0]=mat[0];
for(int i=0; i<t; i++){ j=0;

if (i=str[k]-1){k++; matrix1[i][j]=mat[i+2]; matrix1[i][j+1]=mat[i+3];}
else { matrix1[i][j]=mat[i+1]; matrix1[i][j+1]=mat[i+2];}

}
for(int i=0; i<t; i++){
for(int j=0; j<2; j++){
cout<<setw(4)<<matrix1[i][j];}
cout<<"\n\n";}
system("pause");
	return 0;}
Пишу програмку. Без условия
Код:
if (i=str[k]-1){k++; matrix1[i][j]=mat[i+2]; matrix1[i][j+1]=mat[i+3];}
else { matrix1[i][j]=mat[i+1]; matrix1[i][j+1]=mat[i+2];}
в цикле идет спокойно, а как условие вставляю прога до этого цикла выполняет, а после ни в какую. Помогите, пожалуйста.
Vergil вне форума Ответить с цитированием
Старый 07.04.2010, 16:22   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Вы путаете присваивание с сравнением, в условии (== - ненулевое значение если слева и справа операнды равны и ноль если не равны (поставьте его в ифе), а = - присвоить переменной слева значение выражения справа.)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 07.04.2010, 16:30   #3
Vergil
Пользователь
 
Аватар для Vergil
 
Регистрация: 09.11.2009
Сообщений: 19
По умолчанию

Все понял свою ошибку. Забыл второе равно поставить.
Vergil вне форума Ответить с цитированием
Старый 07.04.2010, 17:44   #4
Vergil
Пользователь
 
Аватар для Vergil
 
Регистрация: 09.11.2009
Сообщений: 19
По умолчанию

Еще одна просьба. опять глючит.
Код:
//---------------------------------------------------------------------------
#include <iostream.h>
#include<stdio.h>
#include <iomanip.h>
#include <windows.h>
#include <winuser.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
char* rus(const char* text)
{char *bufRus=new char[strlen(text)];
 CharToOem(text, bufRus);
 return bufRus;}
int main(int argc, char* argv[])
{int **matrix, **matrix1, *mat, str[30], n=0, m=0, i=0, j=0, mg=0, t=0, y=0, k=0, q=0, x, z;
cout<<rus("Введите количество остановок: ");
cin>>n;
cout<<rus("Введите количество маршрутов: ");
cin>>m;

	mat=new int[n*m];
for (i = 0; i < m; i++){
cout<<rus("Введите количество остановок в ")<<i+1<< rus(" маршруте: ");
cin>>mg;
str[i]=mg;
t=mg+t-1;
cout<<rus("Остановки ")<<i+1<<rus("-ого маршрута через пробел")<<endl;
for (j = 0; j < mg; j++) {cin>>mat[y]; y++;}}

	matrix1=new int*[t];
	for(i=0;i<t;i++)
	matrix1[i]=new int[2];
	matrix1[0][0]=mat[0]; matrix1[0][1]=mat[1];
for(int i=1; i<t; i++){ j=0;
if (i==str[k]-1){k++; matrix1[i][j]=mat[i+1]; matrix1[i][j+1]=mat[i+2];q=1;}
else { matrix1[i][j]=mat[i+q]; matrix1[i][j+1]=mat[i+q+1];} matrix [j][i]=0; matrix[matrix1[i][j]][i]=1;}
			matrix=new int*[n];
			for(i=0;i<n;i++)
			matrix[i]=new int[t];
for(int j=0; j<n; j++){
for(int i=0; i<t; i++){z=matrix[i][1]; x=matrix[i][2]; matrix[j][i]=0; matrix[z][i]=1; matrix[x][i]=1;}}

for(int i=0; i<n; i++){
for(int j=0; j<t; j++){
cout<<setw(4)<<matrix[i][j];}
cout<<"\n\n";}
system("pause");
	return 0;}
Vergil вне форума Ответить с цитированием
Старый 07.04.2010, 19:16   #5
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Не могу помочь ибо вообще понятия не имею, что вы хотели сделать в данном участке кода.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 14.04.2010, 12:45   #6
Vergil
Пользователь
 
Аватар для Vergil
 
Регистрация: 09.11.2009
Сообщений: 19
По умолчанию

Спасибо, за то, что попытались помочь.
Vergil вне форума Ответить с цитированием
Старый 18.04.2010, 18:34   #7
Sapfil
Пользователь
 
Аватар для Sapfil
 
Регистрация: 11.01.2010
Сообщений: 24
По умолчанию

z=matrix[i][1]; x=matrix[i][2]; matrix[j][i]=0; matrix[z][i]=1; matrix[x][i]=1;
Вот эти 5 присвоений что значат? И чтообозначает каждая переменная - X и Z.
Ввобще крайне странно видеть, что Z фигурирует и как хранимое в ячейках значение, и как индекс ячеек одновременно. Это сильно сбивает с толку...
Может, если вы опишите суть задачи - тогда будет проще?
Sapfil вне форума Ответить с цитированием
Старый 21.04.2010, 03:31   #8
silent_1991
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 68
По умолчанию

Согласен с Sapfil, опишите задание.
silent_1991 вне форума Ответить с цитированием
Старый 21.04.2010, 21:43   #9
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
По умолчанию

разбей свою прогу на куски а лучше эти куски опиши как функции но не большого размера их и проверять проше и самому не запутаться.

Да и больше коментариев по истечению времени ты сам забудеш что ты делал.
всему свое время как зиме и весне
и каждому солнцу свой неба кусок
Assemblerru вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы со службой! Basketman Общие вопросы Delphi 1 11.09.2009 16:31
Проблемы с рендомизацией си dampirik Помощь студентам 6 05.09.2009 01:15
проблемы с IE xakzona Помощь студентам 1 16.12.2008 21:53
Проблемы с иконкой. Droid HTML и CSS 1 14.11.2008 08:13
Проблемы с WIN+D Altera Общие вопросы Delphi 4 15.08.2008 15:55