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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2011, 01:30   #1
Захара
Новичок
Джуниор
 
Аватар для Захара
 
Регистрация: 23.02.2011
Сообщений: 2
По умолчанию Не найти ошибку, символьный массив, СИ

Не могу найти ошибку, не считает он у меня эти слова, а должен вроде...
я не вижу в чём тут дело.....помогите


Ввод данных осуществляется из файла с pасшиpением .DAT.
Использовать ТОЛЬКО библиотечные функции ввода/вывода СИМВОЛА.
Исходный текст и pезультат pаботы пpогpаммы выводятся на экpан.
Функции библиотеки,находящиеся в файле string.h, использовать НЕЛЬЗЯ!
Нельзя использовать библиотечные функции работы со строками(словами)!
Обработка текста должна вестись посимвольно!

Задание 5.
С помощью текстового редактора QC создать файл, содержащий текст,
длина которого не превышает 1000 символов ( длина строки текста
не должна превышать 70 символов ).
Имя файла должно иметь расширение DAT.
Написать программу, которая:
1) выводит текст на экран дисплея;
2) определяет количество слов в тексте, у которых первый и последний
символы совпадают.

Код:
#include<stdio.h>
#include<math.h>
main()
{char mas[1000],buf[50];
int i,k,p,v;
FILE *t;
t=fopen("TEXT.DAT","r");
for (i=1,k=0,buf[p]=' ',p=1;i<=1000;i++)
 { while (feof(t)==0)
     {fscanf(t,"%c",&mas[i]);
      printf("%c",mas[i]);
 if ('А'<mas[i]&&mas[i]<'я')
     {buf[p]=buf[p]+mas[i];
      p++;}
 else
     {if (buf[1]==buf[p-1]||buf[1]+32==buf[p])
      k++;
      buf[p]=' ';
      p=1;}
;}
;}
printf ("\n k=%d", k);
fclose(t);
return 0;}

Последний раз редактировалось Stilet; 27.02.2011 в 16:10.
Захара вне форума Ответить с цитированием
Старый 23.02.2011, 11:02   #2
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

структурируй код и получишь ответы.
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 23.02.2011, 13:22   #3
Захара
Новичок
Джуниор
 
Аватар для Захара
 
Регистрация: 23.02.2011
Сообщений: 2
По умолчанию

VadikV

как ?
не понятно

сама сделаю

Последний раз редактировалось Stilet; 27.02.2011 в 16:10.
Захара вне форума Ответить с цитированием
Старый 27.02.2011, 16:01   #4
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
main()
Должно быть int main()

Вот, лучше же?
Код:
#include<stdio.h>
#include<math.h>
int main()
{
    char mas[1000], buf[50];
    int i, k, p, v;
    FILE *t;
    t = fopen("TEXT.DAT", "r");
    for(i = 1, k = 0, buf[p] = ' ', p = 1; i <= 1000; i++) {
        while(feof(t) == 0) {
            fscanf(t, "%c", &mas[i]);
            printf("%c", mas[i]);
            if('А' < mas[i] && mas[i] < 'я') {
                buf[p] = buf[p] + mas[i];
                p++;
            } else {
                if(buf[1] == buf[p - 1] || buf[1] + 32 == buf[p])
                    k++;
                buf[p] = ' ';
                p = 1;
            }
        }
    }
    printf("\n k=%d", k);
    fclose(t);
    return 0;
}
Код тот же самый (разве что потёр 2 лишних точки с запятой), но ведь лучше читается?

А зачем писать так?
Код:
 for(i = 1, k = 0, buf[p] = ' ', p = 1; i <= 1000; i++)
Почему не так?
Код:
k = 0;
buf[p] = ' ';
p = 1;
for(i = 1; i <= 1000; i++)
И вообще, зачем i объявлять заранее? Можно писать так:
Код:
for(int i = 1; i <= 1000; i++)
И заранее i не объявлять, она будет только в этом цикле.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 27.02.2011 в 16:08.
Obey-Kun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку.. одномерный массив, убывающая последовательность Malloperro Помощь студентам 1 23.12.2010 21:15
Символьный массив Aleksey1989 Помощь студентам 9 20.09.2010 18:55
Символьный массив g00d_game Общие вопросы C/C++ 1 12.06.2010 13:38
Помогите Найти ошибку.Задача на массив BackSlash Помощь студентам 4 10.01.2010 16:14
Символьный массив Злой пёс Общие вопросы C/C++ 6 03.11.2009 18:41