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

Русские буквы привести к верхнему регистру, латинские заменить «?»

29.11.2023, 21:57. Показов 1848. Ответов 21

Студворк — интернет-сервис помощи студентам
Создать программу, которая выполняет действия из задания 1 и задания 2. По запросу с клавиатуры, программа выполняет следующие действия:
1) Ввести новый массив (динамический);
2) Задание 1;
3) Вывод массива;
4) Задание 2;
5) Выход.
В программе должно быть реализовано меню, каждое действие должно быть реализовано в отдельной функции.
Задание 1: Ввести вещественный массив А размерности [n,m] (n > 0, m > 0) и ко всем элементам каждой строки  прибавить 1. Если первый элемент строки нулевой, ничего не делать.
Задание 2: Дана строка. Все русские буквы привести к верхнему регистру, латинские — заменить «?». Вывести результат на экран.

Почему не работает??

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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <locale.h>
// Функция для ввода нового динамического массива
void inputArray(float*** arr, int* n, int* m) {
    printf("Введите размерности массива (n m): ");
    scanf_s("%d %d", n, m);
 
    // Выделение памяти под двумерный массив
    *arr = (float**)malloc(*n * sizeof(float*));
    for (int i = 0; i < *n; i++) {
        (*arr)[i] = (float*)malloc(*m * sizeof(float));
    }
 
    // Ввод элементов массива
    printf("Введите элементы массива:\n");
    for (int i = 0; i < *n; i++) {
        for (int j = 0; j < *m; j++) {
            scanf_s("%f", &(*arr)[i][j]);
        }
    }
}
 
// Функция для выполнения Задания 1
void task1(float** arr, int n, int m) {
    for (int i = 0; i < n; i++) {
        // Прибавляем 1 ко всем элементам строки, если первый элемент не равен 0
        if (arr[i][0] != 0) {
            for (int j = 0; j < m; j++) {
                arr[i][j]++;
            }
        }
    }
}
 
// Функция для вывода массива
void printArray(float** arr, int n, int m) {
    printf("Массив:\n");
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            printf("%.2f ", arr[i][j]);
        }
        printf("\n");
    }
}
 
// Функция для выполнения Задания 2
void task2() {
    char str[100];
    printf("Введите строку для Задания 2: ");
    scanf_s("%99s", str, sizeof(str) / sizeof(str[0]));
 
    int len = strlen(str);
    for (int i = 0; i < len; i++) {
        // Приводим русские буквы к верхнему регистру
        if (str[i] >= 'а' && str[i] <= 'я') {
            str[i] = toupper(str[i]);
        }
        // Заменяем латинские буквы на "?"
        else if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
            str[i] = '?';
        }
    }
    printf("Результат Задания 2: %s\n", str);
}
 
int main() {
    setlocale(LC_ALL, "Rus");
    int choice;
    float** array = NULL;
    int n = 0, m = 0;  // Инициализация переменных
 
    do {
        printf("\nМеню:\n");
        printf("1. Ввести новый динамический массив\n");
        printf("2. Задание 1\n");
        printf("3. Вывод массива после выполнения Задания 1\n");
        printf("4. Задание 2\n");
        printf("5. Выход\n");
        printf("Выберите действие: ");
        scanf_s("%d", &choice);
 
        switch (choice) {
        case 1:
            // Ввод нового динамического массива
            if (array != NULL) {
                for (int i = 0; i < n; i++) {
                    free(array[i]);
                }
                free(array);
            }
            inputArray(&array, &n, &m);
            break;
 
        case 2:
            // Выполнение Задания 1
            if (array != NULL) {
                task1(array, n, m);
                printf("Задание 1 выполнено.\n");
            }
            else {
                printf("Массив не был введен.\n");
            }
            break;
 
        case 3:
            // Вывод массива после выполнения Задания 1
            if (array != NULL) {
                printArray(array, n, m);
            }
            else {
                printf("Массив не был введен.\n");
            }
            break;
 
        case 4:
            // Выполнение Задания 2
            task2();
            break;
 
        case 5:
            // Выход из программы
            printf("Программа завершена.\n");
            break;
 
        default:
            printf("Некорректный ввод. Пожалуйста, выберите действие от 1 до 5.\n");
        }
    } while (choice != 5);
 
    // Освобождение памяти перед выходом из программы
    if (array != NULL) {
        for (int i = 0; i < n; i++) {
            free(array[i]);
        }
        free(array);
    }
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.11.2023, 21:57
Ответы с готовыми решениями:

Привести буквы к верхнему регистру?
Нужно на стороне клиента вводящего в форму поиска буквы привести их к верхнему регистру, либо заменить буквы 'ч' и 'я' на заглавные. Если...

Множества и строки. Привести гласные буквы к верхнему регистру, согласные к нижнему
Помогите пожалуйста сделать задачу!!! Дано строку s, состоящую из латинских букв, цифр и разделительных знаков. К гласным буквам...

Множества и строки. Привести гласные буквы к верхнему регистру, согласные к нижнему
Спасибо Огромное) Теперь буду разбираться)

21
 Аватар для Наталья8
629 / 387 / 67
Регистрация: 09.03.2016
Сообщений: 4,311
05.12.2023, 02:51
Студворк — интернет-сервис помощи студентам
Этот вариант иначе (по русски) не показывает.
Выхожу из положения. Это лучше иероглифов.

Добавлено через 4 минуты
На форму выводит. На мессага - бокс выводит.
На консоль русскими не выводит.
0
 Аватар для Наталья8
629 / 387 / 67
Регистрация: 09.03.2016
Сообщений: 4,311
05.12.2023, 13:34

Я умный... А не так себе.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2023, 13:34

Привести 1 символ к Верхнему регистру!
private void Words_Text(object sender, EventArgs e) { string st = ((TextBox)sender).Text; char prov =...

Выделить слово и привести его к верхнему регистру
Есть строка “Пришла золотая осень”. Выделите слово “золота” и приведите его к верхнему регистру. Объясните что за верхний регистр и как...

Заменить латинские буквы на русские и наоборот
Помогите пожалуйста написать программу, которая будет менять латинские буквы на русские и наоборот.

Привести в строке все англ. символы к верхнему регистру
Привести в строке все англ. символы (в нижнем регистре) к верхнему регистру: byte codeOfSymbols =...

В новом файле заменить латинские буквы на русские
Работа с несколькими типизированными файлами создать файл, состоящий из N латинских букв. Составить программу, которая получает новый...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru