Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

лаба на с++

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> лаба на с++
Имя
Сообщение << Старые топики   Новые топики >>
лаба на с++ - 2007-11-12 12:01:17.670000   
klop4ik

Сообщений: 13
Оценки: 0
Присоединился: 2007-11-09 12:54:22.190000
прога работает не так как надо, никак не могу отыскать ошибку.
смысл в том, что идёт поиск элемента массива rules, равный элементу str,при положительном "исходе" найденное печатается и поиск продолжается, пока не будет пустого элемента в rules. проблемные участки написаны в комментариях.
//////////////3.txt////////////////////////
signal_net
abonent_net_otveta
signal_otcutstvuet
telephon_otkluchen
abonent_net_otveta
zvonok_nevozmogen
zvonok_nevozmogen
signal_otcutstvuet
telephon_v_dome
abonent_ne_prinimaet_zvonok
telephon_otkluchen
telephon_v_dome
////////////////////////////////////////
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void main(void)
{
char rules[6][100],str[6][100],strrules[100]="",string[100]="";
FILE*file=fopen("3.txt","r");
for(int i=0;i<6;i++)
{
fgets(strrules,100,file);
for(int j=0;j<100;j++)rules[j]=strrules[j];
printf("%s",rules);
fgets(string,100,file);
for(int j=0;j&lt;100;j++)str[j]=string[j];
printf("%s",str);
}
printf("\n%s",rules[0]);
printf("%s\n",str[0]);
int k=0,j=0;
A:
for(k=0;k&lt;6;k++)
{
if(str[j]==rules[k])//при одинаковых значениях не определяет как одинаковые
{
printf("%s %s\n",rules[k],str[k]);
j=k;
goto A;
}
else if(rules[k]==NULL)//при пустом значении не определяет как пустое
{
fclose(file);
break;
}
}
getch();
}
Post #: 1
RE: лаба на с++ - 2007-11-12 13:04:29.666666   
spi

Сообщений: 11
Оценки: 0
Присоединился: 2007-11-01 11:33:20.090000
Приведенный выше код вообще не будет компилироваться.
Массив rules и str объявлены двухмерными, а при присваивании значений элементам - код для одномерного массива.
//skip for(int j=0;j&lt;100;j++)rules[j]=strrules[j]; printf("%s",rules); fgets(string,100,file); for(int j=0;j&lt;100;j++)str[j]=string[j]; //skip
Далее, аналогично:
if(str[j]==rules[k])//при одинаковых значениях не определяет как одинаковые
Сравнение не будет работать, т.к. массив str двумерный и требует указания двух индексов:
Post #: 2
RE: лаба на с++ - 2007-11-12 16:17:44.846666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
klop4ik, учись пользоваться тегом code… без него довольно-таки затруднительно адекватно запостить текст программы.
Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> лаба на с++







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.