Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Задача за C


Препоръчан отговор

Трябва ми помощ до понеделник, ако някой може да напише тази програма ще е много добре :huh:

Да се напише програма, която:

1.

Определя най-дългата дума в стринг, въведен от потребителя, както и средната дължина на думите.

2.

Символите за разделяне на думите във въведения стринг да могат да се задават от потребителя.

3.

Програмата да има текстово меню, от което потребителят да избира дали да въвежда стринг или да въвежда разделителни символи.

Линк към коментара
Сподели в други сайтове

#include <stdio.h>

#include <conio.h> /* getch() */

#include <string.h> /* strlen(), strtok() */

#include <stdlib.h> /* exit() */


int main(void)

{

    char inputStr[100];

    char delimiters[10];

    char tmpbuf[10];

    char *tmpPtr, *largestWord;

    unsigned string_length, tmp_length, max_length = 0;

    unsigned user_choice, word_counter = 0;


    do {

    printf("1. Enter string\n");

    printf("2. Enter delimiters\n");

    printf("3. Print result\n");

    printf("4. Exit\n");

    printf("Choice: ");

    scanf("%u", &user_choice);


    gets(tmpbuf); // gets new-line escape character, scanf() and gets() trouble! :-)


    switch(user_choice) {


        case 1:

            printf("\nEnter input string: ");

            gets(inputStr); // maybe fgets()?

            break;


        case 2:

            printf("\nEnter delimiters: ");

            gets(delimiters); // maybe fgets()?

            break;


        case 3: // the core of program starts here

            string_length = (unsigned) strlen(inputStr); // average word length calculations...


            tmpPtr = strtok(inputStr, delimiters);


            // the core of algorithm, splits string into tokens (reference: strtok() from string.h)

                while(tmpPtr!=NULL) {

                    if( (tmp_length = strlen(tmpPtr)) > max_length) {

                        largestWord = tmpPtr;

                        max_length = tmp_length;

                    }

                tmpPtr = strtok(NULL, delimiters);


                word_counter++; // count words from stdin

            }

            printf("\nLargest word: %s\n", largestWord);

            printf("Average word length: %u\n\n", string_length / word_counter);

            break;


        default:

            printf("\nTerminate program...");

            exit(1);

        }


    } while(user_choice < 3);


    getch(); // hit any key from KBD, before close program...


    return 0;

}

// done?

Редактирано от krisku (преглед на промените)
Линк към коментара
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване