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

Программа должна находить в вводимом тексте цифры и вписывать их после слова "цифры"

09.03.2018, 21:51. Показов 663. Ответов 2
Метки нет (Все метки)

Добрый день!

Написал вот такую программму:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
 
main()
{
    int i,c,n,bin;
    int hop[10];
    n = c;
 
    for(i = 0; i < 10;++i);
 
    while(c = getchar()!=EOF)
    if (c>'0' && c<'10')
    ++hop[c-'0'];
 
    printf("цифры =");
    for( i=0;i<10; )
    printf("%d",hop[i]);
    printf("%d\n",putchar(n));
}
Программа должна находить в вводимом тексте цифры и вписывать их после слова "цифры", но вместо этого при запуске программы появляется пустое окно и сколько текста не вводи ничего не измениться.
Прошу рассказать в чем мои ошибки( но не как исправить программу! ).
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2018, 21:51
Ответы с готовыми решениями:

Заменить цифры в тексте на соответствующие им слова "Один", "Два" и т.д
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0...

Программа должна находить наибольшую цифру во вводимом числе
Дан код, нужно найти и исправить ошибку. Program Prog1; var m, x, ost: integer; begin ...

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"..."девять", начиная каждое предложение с новой строки
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до...

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до...

2
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11046 / 6993 / 1656
Регистрация: 25.07.2009
Сообщений: 12,763
09.03.2018, 22:52 2
Цитата Сообщение от Klinlip Посмотреть сообщение
n = c;
с при этом ничем не инициализирована, обе переменных содержат какое-то случайное значение.
Цитата Сообщение от Klinlip Посмотреть сообщение
for(i = 0; i < 10;++i);
Дословно: 10 раз ничего не делать.
Цитата Сообщение от Klinlip Посмотреть сообщение
++hop[c-'0'];
Элементы массива так же ничем не инициализированы, по сути увеличится какое-то случайное число.
Цитата Сообщение от Klinlip Посмотреть сообщение
C
1
2
    for( i=0;i<10; )
    printf("%d",hop[i]);
Здесь в принципе должно бы зацикливаться на выводе первого элемента из массива.
Цитата Сообщение от Klinlip Посмотреть сообщение
printf("%d\n",putchar(n));
Если n вдруг окажется кодом печатаемого символа , выведется символ и 1.
0
293 / 275 / 115
Регистрация: 23.01.2018
Сообщений: 920
10.03.2018, 20:02 3
Цитата Сообщение от Klinlip Посмотреть сообщение
if (c>'0' && c<'10')
Подозреваю, что это даже не скомпилируется. Вы понимаете разницу между символом и числом?

Все же исправил программу
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main(void)
{
    int digits[10];
    int i;
    for (i = 0; i < 10; ++i) digits[i] = 0;
    int ch;
    while ((ch = getchar()) != EOF) {
        if ('0' <= ch && ch <= '9') digits[ch - '0'] = 1;
    }
    printf("digits: ");
    for (i = 0; i < 10; ++i) {
        if (digits[i]) putchar(i + '0');
    }
    putchar('\n');
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2018, 20:02

Из данной строки сделать новую строку, заменив в ней все слова: "один", "два", "три" и т.д на соответствующие цифры
Из данной строки сделать новую строку, заменив в ней все слова: &quot;один&quot;, &quot;два&quot;, &quot;три&quot; и т.д на...

В тексте удалить все цифры и удвоить знаки "+" и "-".
В заданном предложении удалить все цифры и удвоить знаки &quot;+&quot; и &quot;-&quot;.

Заменить в последовательности символов после первого вхождения символа "+" все цифры на символ "-"
Заменить в последовательности символов после первого вхождения символа &quot;+&quot;все цифры на символ...

Ввести строку. Вывести её, заменив цифры на слова ( 0 - "one", 1 - "two", ...)
Ввести строку. Вывести её, заменив цифры на слова: ( 0 - &quot;one&quot;, 1 - &quot;two&quot;, ...)???

switch (Программа должна переводить введенные цифры в слова)
Программа должна переводить введенные цифры в слова. проблема: в каждом switch выполняются только...

Все символы-цифры заменить "!", причем количество замен должно соответствовать значению цифры
Может подскажите как сделать: Все символы-цифры заменить &quot;!&quot;, причем количество замен должно...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.