Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 02.04.2019
Сообщений: 29

Программа не выполняет созданную функцию

04.05.2019, 09:20. Показов 476. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
char obratno(char s, int N)
{
if (65 <= 's' <= 90) {
if ('s'-N<65) { s = 91-(64-('s'-N)); }
else { s = 's'+N;}}
 
if (97<='s'<= 122) 
{if ('s'-N < 97) {s = 123-(96-('s' -N));}
else {s = 's'- N;}
}
return(s);
}///////////////
 
char zamen(char s, int N) {
if (65 <= 's' <= 90) {
if ('s' > 90) { s = 's' + N - 90 + 64;}
else { s = 's' + N; }}
 
if (97 <= 's' + N <= 122) {
if ('s' + N > 122) { s = 's' + N - 122 + 97; }
else s = 's' + N;
}
return(s);
}
 
void osnova(char (*zamena)(char, int),char* argv[1],char t,int N)
{
if (t = 'c') {printf("успех\n");
zamena = zamen;}
else {zamena = obratno; printf("не совсем\n");}
 
char ch;
FILE*s1 = fopen(argv[1],"r");
FILE*my = fopen("my.txt", "w");
if (!((s1== NULL)&&(my == NULL)))
{while (!feof(s1)) {
    ch = fgetc(s1);
ch = zamena(ch, N);
fputc(ch, my);}
}
else {printf("ошибка не был открыт\n");}
fclose(my);
fclose(s1);
exit(0);}
 
    
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "Russian");
int N;
if (argc != 4) {
printf(" введите 3 аргумета:Имя файла,режим работы,размер шага\n");
system("pause");
exit(0);
}
char t;
t=argv[2][1];
N=atoi(argv[3]);
char (*zamena)(char, int);
void osnova(char (*zamena)(char, int),char* argv[1],char t,int N);
printf("все ок\n");
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.05.2019, 09:20
Ответы с готовыми решениями:

Как Вызвать Созданную Функцию?
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; string first(string); string second(string); int main() { ...

Ссылка в Excell на созданную пользователем функцию.
Привет! Создал я ф-ию в Excel. Ввожу в ячейке =MyFunction(...) Все работает. Но если я копирую лист с этими данными в другую книгу, то...

Как объявить созданную функцию, чтобы ей пользоваться?
Создал свою функцию, записал в хедере void __fastcall TForm1::test(TObject *Sender) {} прописал в хедере void __fastcall...

5
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
04.05.2019, 09:35
1.7. Функции
Функции в Си играют ту же роль, что и подпрограммы и функции в Фортране или процедуры и функции в Паскале. Функция обеспечивает удобный способ отдельно оформить некоторое вычисление и пользоваться им далее, не заботясь о том, как оно реализовано. После того, как функции написаны, можно забыть, как они сделаны, достаточно знать лишь,что они умеют делать. Механизм использования функции в Си удобен,легок и эффективен. Нередко вы будете встречать короткие функции, вызываемые лишь единожды; они оформлены в виде функции с одной-единственной целью —получить более ясную программу.До сих пор мы пользовались готовыми функциями вроде main, getchar и putchar, теперь настала пора нам самим написать несколько функций.В Си нет оператора возведения в степень вроде **в Фортране. Поэтомупроиллюстрируем механизм определения функции на примере функции power(m, n), которая возводит целое mв целую положительную степень n.Так, power(2, 5)имеет значение 32. На самом деле для практического применения эта функция малопригодна, так как оперирует лишь малыми целыми степенями, однако она вполне может послужить иллюстрацией.(В стандартной библиотеке есть функция pow(x, у), вычисляющая ху.)
Итак,мы имеем функцию power и главную функцию main, пользующуюся ее услугами, так что вся программа выглядит следующим образом:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
/* возводит baseв п-ю степень; n>= 0 */
int power(int base, int n)
{
  int i, p;
  P = 1;
  for (i = 1; i <= n; ++i)
    p = p * base;
  return p;
}
/* тест функции power */
main(){
  int i;
  for (i = 0; i < 10; ++i)
    printf("%d %d %d\n", i, power(2,i), power(-3, i));
  return 0;
}
Определения функций могут располагаться в любом порядке в одном или в нескольких исходных файлах, но любая функция должна быть целиком расположена в каком-то одном. Если исходный текст программы распределен по нескольким файлам, то, чтобы ее скомпилировать и загрузить, вам придется сказать несколько больше, чем при использовании одного файла; но это уже относится к операционной системе, а не к языку. Пока мы предполагаем, что обе функции находятся в одном файле, так что будет достаточно тех знаний, которые вы уже получили относительно запуска программ на Си.В следующей строке из функции main к power обращаются дважды.
C
1
printf("%d %d %d\n", i, power(2,i), power(-3, i));
При каждом вызове функции power передаются два аргумента, и каждый раз главная программа main в ответ получает целое число, которое затем приводится к должному формату и печатается. Внутри выражения power(2,1)представляет собой целое значение точно так же, как 2 или i.

Далее параметром мы будем называть переменную из списка параметров, заключенного в круглые скобкии заданного в определении функции, а аргументом—значение, используемое при обращении к функции.Иногда в том же смысле мы будем употреблять термины формальный аргумент и фактический аргумент.Значение, вычисляемое функцией power, возвращается в main с помощью инструкции return. За словом return может следовать любое выражение:
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,705
Записей в блоге: 14
04.05.2019, 10:07
Дорогой Kuzia domovenok! Я бы вообще не стал бы ничего подсказывать тому, кто так оформляет свой код...
0
0 / 0 / 0
Регистрация: 02.04.2019
Сообщений: 29
04.05.2019, 12:19  [ТС]
И что же не так с кодом?
0
Злостный нарушитель
 Аватар для Verevkin
10304 / 5726 / 1269
Регистрация: 12.03.2015
Сообщений: 26,525
04.05.2019, 12:26
Цитата Сообщение от мышка123 Посмотреть сообщение
И что же не так с кодом?
От транслита глаза кровоточат. Не делай так, используй английский язык: англичане, когда его придумывали, почти все слова из С++ взяли.

Ну и форматировать свой код, прежде чем показывать людЯм, необходимо. Ну разве вот так хуже?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
char obratno(char s, int N)
{
    if (65 <= 's' <= 90) {
        if ('s'-N<65) {
            s = 91-(64-('s'-N));
        }
        else {
            s = 's'+N;
        }
    }
 
    if (97<='s'<= 122)
    {   if ('s'-N < 97) {
            s = 123-(96-('s' -N));
        }
        else {
            s = 's'- N;
        }
    }
    return(s);
}///////////////
 
char zamen(char s, int N) {
    if (65 <= 's' <= 90) {
        if ('s' > 90) {
            s = 's' + N - 90 + 64;
        }
        else {
            s = 's' + N;
        }
    }
 
    if (97 <= 's' + N <= 122) {
        if ('s' + N > 122) {
            s = 's' + N - 122 + 97;
        }
        else s = 's' + N;
    }
    return(s);
}
 
void osnova(char (*zamena)(char, int),char* argv[1],char t,int N)
{
    if (t = 'c') {
        printf("успех\n");
        zamena = zamen;
    }
    else {
        zamena = obratno;
        printf("не совсем\n");
    }
 
    char ch;
    FILE*s1 = fopen(argv[1],"r");
    FILE*my = fopen("my.txt", "w");
    if (!((s1== NULL)&&(my == NULL)))
    {   while (!feof(s1)) {
            ch = fgetc(s1);
            ch = zamena(ch, N);
            fputc(ch, my);
        }
    }
    else {
        printf("ошибка не был открыт\n");
    }
    fclose(my);
    fclose(s1);
    exit(0);
}
 
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");
    int N;
    if (argc != 4) {
        printf(" введите 3 аргумета:Имя файла,режим работы,размер шага\n");
        system("pause");
        exit(0);
    }
    char t;
    t=argv[2][1];
    N=atoi(argv[3]);
    char (*zamena)(char, int);
    void osnova(char (*zamena)(char, int),char* argv[1],char t,int N);
    printf("все ок\n");
    return 0;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
04.05.2019, 13:22
Цитата Сообщение от мышка123 Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
char obratno(char s, int N)
{
if (65 <= 's' <= 90) {
if ('s'-N<65) { s = 91-(64-('s'-N)); }
else { s = 's'+N;}}
 
if (97<='s'<= 122) 
{if ('s'-N < 97) {s = 123-(96-('s' -N));}
else {s = 's'- N;}
}
return(s);
}///////////////
Во-первых в С проверки в стиле low < x < high не прокатывают, не python какой-нибудь. А во-вторых код символа 's' равен 115 по таблице ascii. Не за чем его проверять, всегда будет выполняться вторая ветка. Может нужно всё-таки проверять переданный параметром символ на вхождение в диапазон?
C
1
if ( 65 <= s && s <= 90 )
и далее по тексту...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.05.2019, 13:22
Помогаю со студенческими работами здесь

Выведите максимальный элемент массива, используя созданную вами функцию
пользователь вводит последовательно 5 чисел, которые затем помещаются в массив. Затем создать функцию, которая принимает в качестве...

Какую функцию выполняет оператор %
Согласно МСДН, оператор % возвращает остаток от деления 2-х чисел. Например, 5%2 = 1 ; 78%33 = 12 т.е целую часть откидываем, и берем...

Какую функцию выполняет switch?
какую функцию,выполняет switch?скажем есть switch(10); case 1: case 2: ... break; эта цифра 10,означает что типа 10 выборов...

Ф5 выполняет функцию кнопки sabmit
При обновлении страницы САМА нажимается кнопка Submit(вычисление и обновление БД). Подскажите новичку, как сделать так, что бы на странице...

Какую функцию выполняет typeid?
template&lt;class T&gt; void Menu::showList(queue&lt;T&gt;&amp; l) { Smart a; Electro c; while (true) { system(&quot;cls&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru