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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2013, 19:44   #1
Arantir#
Пользователь
 
Регистрация: 24.08.2012
Сообщений: 28
Радость Определить количество чисел в строке c++

Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <windows.h>

using namespace std;

int main()
{
	FILE *f; 
	f=fopen("C:\\text.txt","r");
	int x, n=4, s=0, k[100], i=1, t;
	while(!feof(f)) 
	{
		fscanf(f,"%i",&x);
		k[i]=x;
		t=i;
		i++;
	}
	for(i=1; i<=t; i=i+n)
	{
		s=s+k[i];
	}
	cout << s << endl;
	system("Pause");
}
Собственно программа должна находить сумму чисел главной диагонали матрицы, которая находится в файле. С этим она успешно справляется но:
1)нужно определить её порядок для переменной 'n' чтобы в ручную её не задавать...
2)так же нужно\можно сделать динамическим массив k[]
Arantir# вне форума Ответить с цитированием
Старый 21.01.2013, 21:45   #2
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Не понятно зачем вы используете C вместе с С++, они совместимы, однако имеют разные подходы.
Можно задавать размер массива перед самим массивом
Цитата:
ФАЙЛ
4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Или использовать контейнеры.
Код:
#include <fstream>
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;



int main()
{
    vector<int> arr; //Наш массив
    int n=0;   //"Сторона" матрицы
    int sum=0; //Искомая сумма

    ifstream file;
    file.open("1.txt");
    int temp;
    //Считываем количество элементов в первой строке и будем далее опираться на него
    while(!file.eof())
    {
        file>>temp;
        arr.push_back(temp);
    }
    n = sqrt(arr.size());
    file.close();

    for(int i=0; i<n; i++)
	{
		sum+=arr[i*(n+1)];
	}
    cout<<sum<<endl;
    return 0;
}
Этот код рабочий только для квадратных матриц
Hemul вне форума Ответить с цитированием
Старый 22.01.2013, 08:25   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Можно задавать размер массива перед самим массивом
Или использовать контейнеры.
но лучше посчитать числа в файле и извлечь корень - получится искомый размер
rrrFer вне форума Ответить с цитированием
Старый 22.01.2013, 18:26   #4
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
но лучше посчитать числа в файле и извлечь корень - получится искомый размер
А как их посчитать, не считывая? А считав, нужно куда-то засунуть (в контейнер)
Hemul вне форума Ответить с цитированием
Старый 22.01.2013, 18:34   #5
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
А считав, нужно куда-то засунуть (в контейнер)
не обязательно. пройди 2 раза по файлу - снача посчитай, потом выдели нужное количество памяти и считай.
rrrFer вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дано строку. определить количество гласных букв в строке nazar113 Паскаль, Turbo Pascal, PascalABC.NET 9 18.01.2013 22:21
определить количество четных чисел и количество нечетных чисел массива, которые вводятся в МЕМО, вывести в поле компонента Edit. Pyxy Помощь студентам 2 21.03.2012 23:24
В строке определить количество слов, которые содержат букву «а» (Delphi) Dark Raven Помощь студентам 2 19.01.2012 16:56
Определить количество слов в строке, введенной с клавиатуры. Gohan Помощь студентам 2 20.02.2011 14:19
определить количество символов и пробелов в строке без использования string.h Alena_897 Помощь студентам 5 07.12.2010 18:40