Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите,пожалуйста,разобраться с задачей. (http://forum.oszone.net/showthread.php?t=232743)

makson41k@vk 13-04-2012 13:48 1898842

Помогите,пожалуйста,разобраться с задачей.
 
Задача звучит так:Дан текстовый файл.Проверить,не встречаются ли в данном тексте два знака арифметических операций,идущие подряд,например: +-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 1898852

Цитата:

Цитата makson41k@vk
if((j==+)or(j==-)or(j==*)or(j==/)&&((j+1)==+)or((j+1)==-)or((j+1)==*)or((j+1)==/)); »

  1. Почему в конце if идет закрывающая оператор точка с запятой? Так надо?
  2. && - что за оператор? Логическое И ? Ладно, допустим. Почему И? Логическое И подразумевает одновременное выполнение логических операндов. Т.е. что бы и левая сторона и правая сторона должны быть правдой.
  3. вы банально запутались в скобках. Смотрите внимательней, я упрощаю ваше выражение:
    Исходное:
    ((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 () )
  4. Я прошу убрать транслитерацию. Глаза ломает.
Успехов! :)

makson41k@vk 13-04-2012 15:19 1898882

Спасибо за советы)со скобками разобрался,транслит убрал,но программа все еще ругается на условие(
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 1898894

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


Время: 09:38.

Время: 09:38.
© OSzone.net 2001-