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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 17:39   #1
Manrex
 
Регистрация: 21.12.2012
Сообщений: 6
По умолчанию Задача на С ++

Напишите программу, которая принимает с клавиатуры 5 строк и выводит те из них, в которых присутствуют цифры.Например, еслли введены строки кот, суп, арбуз123, 223, моло7ко, то программа должна вывести арбуз123, 223, иоло7ко.
Помогите исправить код проги, где то ошибся и не вижу(
Код:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h>
#include <ctime>
using namespace std;



int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
const int size = 5;
string str[size];
bool isN = false;
for (int i=0;i<size;i++) {
cin»str[i];
}
for (int i = 0; i<size; i++) {
for (int j = 0; j < str[i].length(); j++) {
if (str[i][j] == '1' ||str[i][j] == '2' ||str[i][j] == '3' ||str[i][j] == '4' ||str[i][j] == '5' ||str[i][j] == '6' ||str[i][j] == '7' ||str[i][j] == '8' ||str[i][j] == '9' ||str[i][j] == '0') {
isN == true;
}
}
if (isN==true) {
cout « str[i];
isN == false;
}
}
system("pause");
return 0;
}

Последний раз редактировалось Stilet; 23.12.2012 в 20:03.
Manrex вне форума Ответить с цитированием
Старый 23.12.2012, 19:09   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
isN == true;
тут должно быть присваивание

а еще по коду...
ты мог бы использовать isdigit() или что-то типа
Код:
if (str[i][j] >= '0' && str[i][j] <= '9') {
если условие выполнилось - то не имеет смысла дожидаться обработки всех символов строки, сразу пиши break
Код:
isN == false;
тут тоже стопудово должно быть присваивание а не сравнение.
Код:
for (int j = 0; j < str[i].length(); j++) {
этот цикл можно перевернуть чтобы не вычислять неизменную длину строки на каждой итерации
убери лишние хедеры

Код:
  for (int i = 0; i < size; ++i)
    for (int j = str[i].length() - 1; j >= 0 ; --j)
      if (str[i][j] >= '0' && str[i][j] <= '9') {
        std::cout << str[i] << std::endl;
        break;
      }

Последний раз редактировалось Stilet; 23.12.2012 в 20:03.
rrrFer вне форума Ответить с цитированием
Старый 23.12.2012, 19:47   #3
Manrex
 
Регистрация: 21.12.2012
Сообщений: 6
По умолчанию

то есть как будет выглядеть весь код с этим сливанием?
Manrex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на структуру(struct)/задача на работу с файлом SevenArth Помощь студентам 0 26.04.2012 19:06
Задача о станках Задача Джонсона Aiga Помощь студентам 4 05.02.2012 21:48
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51