Есть задача: в файле 20 чисел,и надо вывести:
1.Количество всех троек (даже если дано число 333, то должна просчитаться каждая тройка)
2.Количество всех чисел , которые больше 10.
На языке Си решил за 10 минут, а вот на C++ не получается. Например-почему из файла выводятся все символы как они есть, а когда приводишь их к типу int , чтобы потом сравнить- выводится только первый символ? Прошу обьяснить на примере кода языка С++.
#include "pch.h"
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
const int mas_count = 20;
string line;
int three_count = 0, int_line[mas_count];
string mas[mas_count];
ifstream file_nums("numbers.txt");
if (file_nums.is_open()) {
int i = 0;
while (getline(file_nums, line))
{
mas[i] = line;
int_line[i] = stoi(mas[i]);
cout << mas[i] << endl;
cout << int_line[i] << endl;
i++;
}
}
//сюда не обращайте внимания
for (int i = 0; i < mas_count; i++) {
int_line = stoi(mas[i]);
cout << int_line << endl;
int_line = 0;
}
return 0;
}
int i = 0;
while (!feof(f1))
{
i++;
num = fgetc(f1);
if (!feof(f1))
{
printf("%c", num);
if (num == '3') n++;
}
};
sum = 0;
for (int j = 1; j < 16; j++)
if (mas[j] > 10) {
sum = sum + 1;
}
else
{
sum = sum + 0;
}
fclose(f1);
printf("\n");
printf("\nВ тексте встречается %i раз цифра 3\n", n);
printf("\n");
printf("\nВ тексте %i чисел больше за 10\n", sum);
printf("\n");
}
Файл: numbers.txt
Содержимое: 1 3 5 8 12 13 16 20 23 24 27 30 33 35 36 40 42 43 45 49 50
Ответ должен выглядеть так:
1.Количество троек: 9
2.Чисел больше 10: 17
Не нужно посимвольное считывание.
Если сделан ввод из файла по уму - сразу чисел (например, с помощью cin
), то нужно просто посчитать количество цифр-троек
while(n) {
digit = n % 10;
if (digit==3)
count3++;
n = n / 10;
}
Если вводятся строки, то по каждой можно пройти, подсчитать символы-тройки
Виртуальный выделенный сервер (VDS) становится отличным выбором
Почему алгоритм std::count() возвращает difference_type, ведь это знаковое число, а количество вхождений чего-то во что-то может быть 0+, те
Существует ли аналог алгоритма std::hypot() для вектора с 3+ элементами в стандартной библиотеке? Если нет, то можно предложить подобный по функционалу...
Такая вот проблема, пишу алгоритм для расчёта полинома Ньютона и сталкиваюсь с этой ошибкой
Дана задача: создать стек из чисел, найдти среднее арифметическое и удалить елементы меньше егоC++ Builder6