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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2009, 21:21   #1
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию проблемы с массивами=((

всем привет кто сможет помогите пож-та дана одна задачка:

"Считать двумерный массив из файла. В файле возможно размещение массива с максимальным размером 100×100. Кроме массива в файле не должно содержаться каких-либо еще вспомогательных переменных. В программе должен выводиться на экран считанный массив в его изначальном виде. Получить массив Х1,Х2,…,Хn по правилу: Хi=1, если в i-ом столбце матрицы есть хотя бы один элемент, превышающий заданные значения С, иначе Хi=0. Найти также общее число элементов, которые больше С."

Для уточнения условия:

"Массив считывается из текстового файла. Затем определяется количество в нём строк и столбцов, выводится на экран. После ввода числа, создается одномерный массив, столбец которого помечается 1 в том случае, если в столбце исходного массива обнаружится число, превышающее введенное число. Затем выводится общее количество чисел превышающих введенное число."

Вот мой код:

Код:
#include "stdafx.h"
#include "iostream"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int a[100][100];
	int s[100];
	FILE *f;
	char b[100];
	bool z=true;
	int c,i,j,q;
	do{
	cout<<"Vvedite adres faila:\n";
	cout<<"Format vvoda-disk_name:\\directory\\...\\name.txt\n";
    cin>>b;
    if ((f=fopen(b,"r"))==0)
	cout<<"Fail ne naiden!\n";
	else z=false;
	}while(z==true);
	z=true;
	for(int i = 0; i < 3; i++)
    for(int j = 0; j < 3; j++)
    fscanf(f, "%d", &a[i][j]);

	
    for(i = 0; i < 3; i++) 
{
   	for(j = 0; j < 3; j++)
	cout<<a[i][j]<<' ';
	cout << endl;
}
    do 
	{
    fflush(stdin);
    printf("Vvedite C (tolko chisla):\n");
	}
	while(scanf("%f",&c)!=1);

cout<<b[j]<<' ';   //начиная с этого момента у меня белибирда какаята
    for(j=0; j<3; j++)
	{
		s[j]=0;
		for(i=0; i<3; i++)
		{
			if (a[i][j]>c)
			{
				s[j]=1;
				q=q+1;
		}
		}
	}
cout<<q<<' ';

return 0;
}

Пример (допустим дан массив):
1 2 3
4 5 6
7 8 9

Я ввожу число допустим 2, то программа должна вывести одномерный массив вида:
1 1 1 (тк 2 меньше в каждом столбике)

Потом программа общее число элементов больше двух т.е:
7
pinch000 вне форума Ответить с цитированием
Старый 05.11.2009, 23:10   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Переменная с у вас объявлена как целочисленная, а значение вводится как вещественное, поэтому считывается оно не корректно

Код:
while(scanf("%d",&c)!=1);
Переменные i и j лучше объявить только один раз!
Не понятно для чего используется массив b[100].
Переменную-счетчик q нужно инициализировать q=0;

получилось так

Код:
int i,j,q=0;
...

for(j=0; j<3; j++)
	{
		s[j]=0;
		for(i=0; i<3; i++)
		{
			if (a[i][j]>c)
			{
				s[j]=1;
				q=q+1;
		    }
		}
		cout<<s[j]<<" ";
	}
cout<<endl<<q;
...
counter вне форума Ответить с цитированием
Старый 05.11.2009, 23:31   #3
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию

да спасибо большое=))))а массив b[100] используется для ввода пути к моему текстовому файлу....
pinch000 вне форума Ответить с цитированием
Старый 05.11.2009, 23:48   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
а массив b[100] используется для ввода пути к моему текстовому файлу....
мда... бывает (не заметил)

ну тогда не cout<<b[j], а cout<<b
counter вне форума Ответить с цитированием
Старый 05.11.2009, 23:59   #5
pinch000
Пользователь
 
Регистрация: 29.10.2009
Сообщений: 42
По умолчанию

ааааа cout<<b[j] я эт що то перепутал с другим массивом =))))
не cout<<b[j] а должно было быть cout<<s[j]<<" "
=))..
pinch000 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами на VB =Apple= Помощь студентам 11 16.06.2009 14:29
Работа с массивами Ainur Помощь студентам 5 22.05.2009 14:28
Работа с массивами. DomiR Помощь студентам 4 22.05.2009 12:17
Работа с массивами. DomiR Помощь студентам 1 22.05.2009 12:09
работа с массивами mager JavaScript, Ajax 5 27.08.2008 22:02