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

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

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

     

Задача за C


mahata

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

Трябва ми помощ до понеделник, ако някой може да напише тази програма ще е много добре :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.

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