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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2017, 11:43   #1
katerubak
 
Регистрация: 03.01.2017
Сообщений: 5
По умолчанию Код правильно написан? Не выводит на экран

Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 80
#define DELIM " ,.?!    "
void withoutString(char* );
void fast(char* );
int main()
{
    char str[N];
    int i = 0, len = 0, count = 0, n;
    system("chcp 1251 > nul");
    puts("Please enter your name::");
    while((str[i] = getchar()) != '\n'){
        len++;
        if(str[i] == 'а' || str[i] == 'А')
            count++;
        i++;
    }
    str[i] = '\0';
    printf("\nNumber of letters: %d\n", len, count);
    printf("\nNumber of letters(a)": %d\n");
    puts("Select solutions:\nthrough string.h - please enter 1\nnot using string.h - please enter 2");
    while(1 != scanf("%d", &n) || (n != 1 && n != 2)){
        puts("Неправильный ввод данных!Попробуйте снова.");
        getchar();
    }
    if(n == 2)
        withoutString(str);
    if(n == 1)
        fast(str);
    return 0;
}
void withoutString(char* p)
{
    char delim[] = " \t\n,.?!;:", *first, *last;
    int j, flag = 0, sym = 1, count = 0;
    for(count = 0; *p; p++, sym = 1){
        for(j = 0; delim[j]; j++)
            if(*p == delim[j])
                sym = 0;
        if(sym){
            if(!flag){
                first = p;
                flag = 1;
            }
        }
        else{
            if(flag){
                last = p;
                flag = 0;
                if(!count){
                    puts("Last name:");
                    while(first < last)
                        putchar(*first++);
                    putchar('\n');
                }
                if(count == 1){
                    printf("Numbers of letters(a)\n", last - first);
                    exit(0);
                }
                count++;
            }
        }
    }
}
void fast(char* str)
{
    char* p;
    int count;
    for(p = strtok(str, DELIM), count = 0; p; p = strtok(NULL, DELIM), count++){
        if(!count)
            printf("\nSurname: %s", p);
        else{
             printf("\nNumbers of letters\n", strlen(p));
                    exit(0);
        }
    }
}
Ввести фамилию, имя и отчество как одно текстовое данное. Определить длину данного и
количество букв "а" в нем. Решить задачу двумя способами:
а) используя функции из библиотеки string.h;
б) рассматривая введенный текст как массив символов.
Вывести фамилию и количество букв в имени.
katerubak вне форума Ответить с цитированием
Старый 06.01.2017, 15:08   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

В код не вникал, смотрел по диагонали. У вас проблема к кавычками, как мне кажется. Например, в этой строке
Код:
printf("\nNumber of letters(a)": %d\n");
Из-за этого эту строку и то, что дальше, компилятор неправильно понимает.
Вадим Мошев вне форума Ответить с цитированием
Старый 06.01.2017, 19:23   #3
katerubak
 
Регистрация: 03.01.2017
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
В код не вникал, смотрел по диагонали. У вас проблема к кавычками, как мне кажется. Например, в этой строке
Код:
printf("\nNumber of letters(a)": %d\n");
Из-за этого эту строку и то, что дальше, компилятор неправильно понимает.
вот, переделала
Код:
printf("\nNumber of letters (a): %d\n");
Мне нужно чтобы отдельно посчитало "а"
Изображения
Тип файла: png Безымянный1.png (5.8 Кб, 31 просмотров)
katerubak вне форума Ответить с цитированием
Старый 06.01.2017, 19:45   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Что значит "Отдельно"?
Вадим Мошев вне форума Ответить с цитированием
Старый 06.01.2017, 20:39   #5
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

По моему, так Вы не дружите с функцией printf().
Пример вывода значений двух переменных:
Код:
printf(“num_i = %d,\n num_f = %f”, num_i, num_f);
А какую переменную выводите Вы?
Код:
printf("\nNumber of letters (a): %d\n");
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На каком языке написан код? alexaber Помощь студентам 10 20.05.2016 12:43
Правильно ли написан алгоритм нахождения минимального числа в каждой строке матрицы? DANILICH Общие вопросы C/C++ 2 06.05.2016 10:05
Не выводит код клавиши на экран ahurtep Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.01.2014 23:11
Грамотно ли написан код? Sergey_gorobets Помощь студентам 9 09.02.2013 13:39
Правильно написан алгоритм? ming_ruport Помощь студентам 5 17.10.2011 16:34