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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2010, 23:27   #1
logok
 
Регистрация: 25.02.2010
Сообщений: 7
По умолчанию Как ввести?

Нужно в этой проге ввести массив и его размерность из файла.У меня даже кол-во строк вводить не хочет,("fscanf(fout,"%i",str);"-ошибкаThe variable 'str' is being used without being initialized.).Как массив ввести вобще не представляю...
Код:
// 5lab.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
using namespace std;

//===============================
void Vvod(int**mas,int str,int stb,FILE*fin)
{int i,j;
	for(i=0;i<str;i++)
		for(j=0;j<stb;j++)
		{cout<<"Vvedite element mas["<<i+1<<"]["<<j+1<<"]=";
	cin>>mas[i][j];}
system("cls");
	cout<<"\nmatriza:\n";
		for(i=0;i<str;i++)
		for(j=0;j<stb;j++)
		{fprintf(fin," %i",mas[i][j]);
	cout<<mas[i][j]<<" ";
	if (j==stb-1)
	{cout<<"\n";
	fprintf(fin,"\n");
	}		}}
//==============================
int nulstb(int** mas,int str,int stb)
{int i=0,j=0,p=0;
	while ((j<stb)&&p==0)
	{for(i=0;i<str&&p==0;i++)
		{
			if ((mas[i][j]==0) && (p==0))
         p=(j+1);
		}j++;}
return p;
}
//==========================
void form(int**mas,int*arr,int str,int stb)
{int i,j,temp,f=0;
for(i=0;i<str;i++)
arr[i]=0;
	for(i=0;i<str;i++)
		for(j=0;j<stb;j++)
			if ((mas[i][j]<0)&&(mas[i][j]%2==0))
				arr[i]+=1;
while (f==0){f=1;
for(i=0;i<str-1;i++)
if (arr[i]<arr[i+1])
{f=0;
	temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
		for(j=0;j<stb;j++)
		{temp=mas[i][j];
		mas[i][j]=mas[i+1][j];
		mas[i+1][j]=temp;}
		}}}

//==========================
int main()
{int str,stb,i,j;
FILE*fin,*fout;
 fin=fopen("D:\\1.txt","w");
fout=fopen("D:\\2.txt","rt");
fscanf(fout,"%i",str);
cout<<"Kol-vo strok="<<str;
//cin>>str;
cout<<"Kol-vo stolbcov=";
cin>>stb;
fscanf(fin,"%i",str);
	fprintf(fin,"Kol-vo strok=%i\nKol-vo stolbcov=%i\n",str,stb);	
	int*arr=new int[str];
	int**mas= new int*[str];
for(i=0;i<str;i++)
mas[i]=new int[stb]; 
//
Vvod(mas,str,stb,fin);
//
if (nulstb(mas,str,stb)!=0)
{cout<<"\nNomer pervogo stolbca s nul. elementom="<<nulstb(mas,str,stb);
fprintf(fin,"\nNomer pervogo stolbca s nul. elementom=%i",nulstb(mas,str,stb));
}
else
{cout<<"\nNet nulei";
fprintf(fin,"\nNet nulei");}
//
fprintf(fin,"\nSform.matriza:\n");
form(mas,arr,str,stb);
//
cout<<"\nmatriza:\n";
	for(i=0;i<str;i++)
		for(j=0;j<stb;j++)
		{fprintf(fin," %i",mas[i][j]);
	cout<<mas[i][j]<<" ";
	if (j==stb-1)
	{cout<<"\n";
	fprintf(fin,"\n");}};
//
	
for(i=0;i<str;i++)
delete []mas[i];
delete []mas;
delete[]arr;
fclose(fin);
fclose(fout);
getch();
return 0;
}
logok вне форума Ответить с цитированием
Старый 24.04.2010, 06:41   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

fscanf'у нужна ссылка
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как ввести числа с клавиатуры и запомнить их в переменные mandarinka27 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 18.05.2009 17:03
Как ввести в Edit интервал? Котакот Общие вопросы Delphi 5 19.04.2009 17:39
Как ввести любую математическую функцию? dabulkhairb Общие вопросы Delphi 10 03.02.2009 21:12
как ввести символы #13 и #10 в свойство Caption shurik_7866 Общие вопросы Delphi 12 16.03.2008 16:12