Форум программистов, компьютерный форум CyberForum.ru

вывод максимальных слов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поменять местами первый столбец со столбцом с первыми К «+»-ми элементами. http://www.cyberforum.ru/cpp-beginners/thread416177.html
22. Поменять местами первый столбец со столбцом с первыми К «+»-ми элементами. вот код. но он меняет просто вторую строку с первой. //--------------------------------------------------------------------------- #include <vcl.h> #include <stdio.h> #include <conio.h> #include <math.h> #pragma hdrstop void in_arr(int mas,int n)
C++ схема Горнера (помогите с курс. работой) #include<iostream> #include <conio.h> using namespace std; #define n 1 int main() { float x, b, a; int i; http://www.cyberforum.ru/cpp-beginners/thread416172.html
двумерный массив вещественных чисел C++
дан двумерный массив вещественных чисел.упорядочить массив по возрастанию элементов первого столбца,обнулить max и min элементы!!
C++ Считать три предложения и вывести их в обратном порядке
Программа , которая считывает три предложения и выводит их в обратном порядке. ребят помогите очень надо..
C++ Помогите начинающему http://www.cyberforum.ru/cpp-beginners/thread416143.html
Здравствуйте! Начал изучать C++, но возникло несколько вопросов в процессе изучения. Хотелось бы узнать что к чему 1) Вот допустим int* n и int *n это одно и то же?(звездочку без разницы где ставить?) 2) char - символьный массив. Почему его везде объявляют как ссылку? (*char) 3) Собственно из-за чего и создавалась тема. Размещение двумерного массива в свободной памяти int (*a)=new int int...
C++ Сумма делителей Помогите пожалуста с двумя задачами кто сможет 1 "Найти сумму делителей каждого из целых чисел от 10 до 20" 2 "Известно, что в массиве имеются нулевые элементы а) вывести все нулевые элементы кроме первого б) все нулевые кроме последнего Хоть с чем нибудь помогите очень нужно пожалуста подробнее

Показать сообщение отдельно
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
24.12.2011, 17:50     вывод максимальных слов
Задание было - разработать программу и подпрограмму (подпрограммы), работающую с текстовым файлом. Подсчитать количество слов и определить и вывести на экран максимальное и минимальное слова и их длину. Но в программе есть косяк, который заключается в том, что если во входном файле два слова максимальной длины, он выдает только одно из них как максимальное, а надо, чтобы оба, с минимальными словами то же самое, как исправить, не подскажите?

Код
#include <stdio.h>
#include <string.h>
#include <conio.h>

int main() {
 const int len=255; // Максимальная длина строк
 char fn[len]; // Имя исходного файла
 printf("Enter file name: ");
 scanf("%s", fn);
 FILE* fin = fopen(fn, "rt");
 if (!fin) {
  printf("\nCouldn't open file!\n");
  getch();
  return 1;
 }
 char maxWord[len] = "\0"; // Слово макс. длины
 char minWord[len] = "\0"; // Слово мин. длины
 int count = 0; // Количество слов
 char line[len]; // Строка
 while (fgets(line, len, fin)) { // Пока не закончился файл
  const char delims[]=" .,!?/<>|)(*:;\""; // Разделители между словами
  char *word = strtok(line, delims); // Извлекаемое первое слово
  while (word) { // Пока есть слова в строке
   count++;
   if (strlen(maxWord) < strlen(word))
    strcpy(maxWord, word);
   if (strlen(minWord) > strlen(word) || strlen(minWord)==0)
    strcpy(minWord, word);
   word = strtok(NULL, delims);
  }
 }
 fclose(fin); // Закрываем файл
 // Вывод результатов
 printf("\nWord of the max. length: %s (%i)\n", maxWord, strlen(maxWord));
 printf("Word of the min. length: %s (%i)\n", minWord, strlen(minWord));
 printf("The total count of words: %i\n", count);
 getch();
 return 0;
}
Добавлено через 4 часа 57 минут
Я не знаю как исправить, сижу пол дня...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru