PDA

Показать полную графическую версию : Помогите,пожалуйста,разобраться с задачей.


makson41k@vk
13-04-2012, 13:48
Задача звучит так:Дан текстовый файл.Проверить,не встречаются ли в данном тексте два знака арифметических операций,идущие подряд,например: +-3.5; /-12.4 и т.п.Если такие ситуации будут обнаружены,то выдать на экран сообщение об ошибке с указанием номера строки и номера позиции.
Сам написал вот что,но прога ругается на условие и вообще не понимаю что нужно сделать с условием.Прошу Вашей помощи.

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
FILE *f;
char txt[100][80];
int j=0,i;
f=fopen("123.txt","r");
do
{
fgets(txt[i],80,f);
while(feof(f));
for (j=0; j<i; j++)
if((j==+)or(j==-)or(j==*)or(j==/)&&((j+1)==+)or((j+1)==-)or((j+1)==*)or((j+1)==/));
{printf("Owu6ka B cTpoke %d","no3uu,uu %d \n",i,j);
i++;}
getch();}

lxa85
13-04-2012, 14:17
if((j==+)or(j==-)or(j==*)or(j==/)&&((j+1)==+)or((j+1)==-)or((j+1)==*)or((j+1)==/)); »

Почему в конце if идет закрывающая оператор точка с запятой? Так надо?
&& - что за оператор? Логическое И ? Ладно, допустим. Почему И? Логическое И подразумевает одновременное выполнение логических операндов. Т.е. что бы и левая сторона и правая сторона должны быть правдой.
вы банально запутались в скобках. Смотрите внимательней, я упрощаю ваше выражение:
Исходное:
((j==+)or(j==-)or(j==*)or(j==/)&&((j+1)==+)or((j+1)==-)or((j+1)==*)or((j+1)==/))
убираем равности:
(() or () or () or () && () or () or () or ().
Во первых явно не хватает закрывающей скобки.
Во вторых, что делает &&? Он должен действовать над группами:
( () or () or () or () ) && ( () or () or () or () )
Я прошу убрать транслитерацию. Глаза ломает.

Успехов! :)

makson41k@vk
13-04-2012, 15:19
Спасибо за советы)со скобками разобрался,транслит убрал,но программа все еще ругается на условие(
if((j==+)or(j==-)or(j==*)or(j==/))&&(((j+1)==+)or((j+1)==-)or((j+1)==*)or((j+1)==/))

lxa85
13-04-2012, 15:31
а, ну правильно!
j - это что такое? Число или позиция в строке? А позиция в строке дает символ.
Ты сравниваешь сладкое с мягким.




© OSzone.net 2001-2012