Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Трабла с написанием функции - си, Declaration syntax error 
:(
    Опции темы
Jugger
Дата 2.12.2010, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 30.1.2008

Репутация: нет
Всего: нет



Вот такой вот код
При компиляции в турбо си выдает ошибку Declaration syntax error в строке 22
В чем может быть дело ?

Код

#include <conio.h>
# include <stdio.h>
#include <math.h>
#include <string.h>
#define M 100

main()
{

char isx[M]="kakaia to tam stroka";


int d,i,num;
clrscr();
d=strlen(isx);





int strglasnie(char a[M])
         char a[M];{
       int flag,num=0,ii;
       char glasnie[6]={'e','y','u','o','a','i'};

 for(ii=0;ii<6;ii++){
                       flag=0;
                     if(isx[i]==*glasnie[ii]){
                                  flag=1;
                                  num++;
                                  }
                     if(flag==1) goto label;


                               }
                     return num;
                  }
label:num= strglasnie(isx);

for(i=0;i<d;i++) goto label;
 printf("%d",num);





      return 0;
}









Это сообщение отредактировал(а) Jugger - 2.12.2010, 22:31
PM MAIL   Вверх
sQu1rr
Дата 2.12.2010, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Извините, но ваш код ужасен
 smile 

Это раз:
Код

# include <stdio.h>


Вот ваша ошибка, поставьте "{" вначало строки ( всеравно грязно )
Код

int strglasnie(char a[M])
         char a[M];{


Ну блин... кто бы мог подумать
Код

for(i=0;i<d;i++) goto label;


Дальше разбираца желания небыло  smile

Добавлено через 1 минуту и 4 секунды
Хех даже не заметил, что у функции параметр аж с размерностью определен
Все я пошел нервно курить после такого кода.
Мой мозг взорвался
PM MAIL Skype GTalk   Вверх
Annuta
Дата 2.12.2010, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 3.10.2006
Где: Dubna

Репутация: нет
Всего: 1



Привет! А ошибки не пробывал искать в коде ? 
Код

int strglasnie(char a[M])
         char a[M];{...

это так должно наверно быть
Код

int strglasnie(char a[M])
{ ...}


--------------------
Программист - это комбинация лени и логики !
PM MAIL   Вверх
Jugger
Дата 2.12.2010, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 30.1.2008

Репутация: нет
Всего: нет



Понимаю что код ужасен  smile 
Но я ведь только изучаю си 

Так тоже пробовал
Код

int strglasnie(char a[M])
{ ...}


Пишет ту же ошибку + добавляет undefined label

А что не так с
Код

for(i=0;i<d;i++) goto label;


Хочу в цикле i раз перейти к метке

Это сообщение отредактировал(а) Jugger - 2.12.2010, 22:57
PM MAIL   Вверх
sQu1rr
Дата 2.12.2010, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Цитата(Jugger @  2.12.2010,  22:57 Найти цитируемый пост)
Так тоже пробовал

а так?
Код

int strglasnie(char a[])
{ ... }

int strglasnie(char *a)
{ ... }



Цитата(Jugger @  2.12.2010,  22:57 Найти цитируемый пост)
Хочу в цикле i раз перейти к метке

Во первый goto использовать не рекомендуеца на прикладном уровне.
Всегда есть чтото типо do..while и тп
У вас код чтото типо
Код

label: func();
for( [A] ) goto label;
// Надо бы так
do func() while( [A] );
// Ну это худший вариант разумеется


goto небезопасен!

Добавлено через 3 минуты и 59 секунд
И да - вынесете фнукцию за мейн например
PM MAIL Skype GTalk   Вверх
sQu1rr
Дата 2.12.2010, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Я вообще с С не очень знаком, но думаю это сойдет
Код

#include <conio.h>
#include <stdio.h>
#include <string.h>

// Функция считает гласные
int count_vowels( char * a ) // передаем массив по ссылке ( можно и { char a[] } )
{
    char vw[] = { 'e', 'y', 'u', 'o', 'a', 'i' }; // Гласные

    int num = 0, i, j; // 2 переменные цикла и возвратное значение
    int size = strlen( a ); // длина строки
    for( i = 0; i < size; ++i ) // проходим строку
        for( j = 0; j < 6; ++j ) // проходим массив гласных
            if( a[i] == vw[j] )
            {
                num++; // Гласная найдена, прибалвяем к num 1
                break; // Выходим из цикла
            }
    return num; // Возвращаем значение
}

int main()
{
    char isx[] = "kakaia to tam stroka"; // Строка сама найдет свой размер
    printf( "%d", count_vowels( isx ) ); // Можно делать и так ( функция возвращяет число )
    _getch(); // не знаю что в C для задержки экрана используется
    return 0;
}


Это сообщение отредактировал(а) sQu1rr - 2.12.2010, 23:25
PM MAIL Skype GTalk   Вверх
Jugger
Дата 3.12.2010, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 30.1.2008

Репутация: нет
Всего: нет



Спасибо огромное  smile 
Всё заработало как надо
PM MAIL   Вверх
sQu1rr
Дата 3.12.2010, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Рад помочь  smile 
PM MAIL Skype GTalk   Вверх
Dov
Дата 11.12.2010, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Код
// Функция считает гласные
int count_vowels(char * a)    
{
    int num = 0;

    while(*a) 
        num += (strchr("eyuoai", tolower(*a++)) != NULL);

    return num;                    
}


Это сообщение отредактировал(а) Dov - 11.12.2010, 17:50


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
asmdzen
Дата 11.12.2010, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Нашел в inflate.c библиотеки zlib такого вида декларацию:
Код

int ZEXPORT inflateReset2(strm, windowBits)
z_streamp strm;
int windowBits;
{ ... }

что это за трюки, где можно найти описание таких возможностей в с++. (указание типа параметров после закрывающей скобки) ?
PM MAIL   Вверх
Dov
Дата 11.12.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Это не С++, это синтаксис языка С.


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
xvr
Дата 13.12.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Dov @ 11.12.2010,  20:44)
Это не С++, это синтаксис языка С.

Угу, причем еще времен K&R. В ANSI C считается depricated

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0551 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.