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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2009, 00:30   #1
Аньчоус
Новичок
Джуниор
 
Регистрация: 30.12.2009
Сообщений: 1
По умолчанию Доработать программу с массивом

Помогите доработать программу с массивом,она что-то не правильно работает,и ошибки есть...вот сам исходник задания :"Задана прямоугольная матрица В размера m*n.Вычислить суммы элементов столбцов,номера которых определяются номерами положительных элементов заданного вектора."


И текст имеется...

Код:
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <conio.h>

const unsigned M=10,N=10;

void Inp(int A[M][N],int &a,int &b, fstream &f)
{
 char s;
 int i,j;
 a=0;
 b=N;
 i=0;
 j=0;
 while(1)
 {
  f>>s;
  if(f.eof())
  {
   break;
  }
  while((s==' ')&&(s!='\n')&&(f.eof()==0))
  {
   f>>s;
  }
  if((s=='\n')||(f.eof())||(j==b))
  {
   if(!(j==0))
   {
    if(j<=b)
    {
     b=j;
     j=0;
    }
    i++;
   }
  } else
  {
   f.seekg(-1,ios::cur);
   f>>A[i][j];
   j++;
  }
  if(i==M)
  {
   break;
  }
 }
 a=i;
}

void OutA(int A[M][N],int &a,int &b)
{
 int i,j;
 i=0;
 j=0;
 cout<<'\n';
 while(i<a)
 {
  while(j<b)
  {
   cout<<A[i][j]<<' ';
   j++;
  }
  j=0;
  i++;
  cout<<'\n';
 }
 cout<<'\n';
}
const unsigned V=10;

void vvod(int A[V],int *i,fstream &F1)
{
if (F1.bad()!=0){cout<<"oshibka";}
while (1)
{
F1>>A[*i];
if (F1.eof())break;
*i=*i+1;
if(*i==V)break;
}
}
void schet (int i,int A[],int m, fstream *F)
{
while(1)
{
if(m==i)break;
if(A[m]==i) {m++;} else {*F<<A[m]<<" "; m++;}
 }
 }
void perebor (int i,int j,int k,A[N])
i=0;
j=0;
k=0;
while (i<N)
 {if (B[i]>0)
   {
 C[j][k]=A[j][(B[i])];
 i++;
 }
 k++;
 j=0;
 }
 i++;
 


int summa (int i,int  j,int z,sum)
 {
 int sum,n,m,k[m],i,j,z;
 for (j=0;j<m);j++);
 {
 k[j]=0;
    for (i=0;i<n;i++)
 { if (p[i][j],o)
 {k[j]=1;
 }
 }
}
for (j=0;j<m;j++){
  sum=0;
   for(i=0;i<n;i++)
    if (k[j]==1)
  {
  sum=sum+A[i][j];
  z=j+1;
  }
  cout<<"Summa elementov"<<z<<"-ogo stolbca ravna"<<setw(8)
		       <<sum<<"\n";
                       }


void OutB(int B[][],int &o,int &a,int &b,fstream *f)
{
 int i;
 i=0;
 if(o<(a*b/3))
 {
  while(i<o)
  {
   *f<<B[i][0]<<' '<<B[i][1]<<' '<<B[i][2]<<'\n';
   cout<<B[i][0]<<' '<<B[i][1]<<' '<<B[i][2]<<'\n';
   i++;
  }
 }
}

void main()
{
 clrscr();
 int A[M][N];
 int B[M][N];
 int a,b,o;
 int *i,*j;
 cout<<"Avtor - Tsariova Anna\n"
          <<"Versia - 1";
 fstream f;
 f>>resetiosflags(ios::skipws);
 f.seekg(+0,ios::beg);
 if (f.bad()!=0)
 {
  cout<<"oshibka otkritija";
 }
 f.open("in.txt",ios::in);
 fstream F;
 Inp(A,a,b,f);
 F.open("out.txt",ios::out);
 OutA(A,a,b);
 Change(A,B,a,b,o);
 OutB(B,o,a,b,&F);
 F.close();
 f.close();
}

Последний раз редактировалось Sazary; 31.12.2009 в 00:35.
Аньчоус вне форума Ответить с цитированием
Старый 31.12.2009, 18:39   #2
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
Радость

То ли условия задачи не полностью сформулированы.

Цитата:
cout<<"Avtor - Tsariova Anna\n"
То ли это не совсем удачный плагиат :
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
надо доработать nariku Общие вопросы по Java, Java SE, Kotlin 3 22.10.2009 20:36
Доработать код Микки Microsoft Office Excel 7 31.03.2009 13:12
Текстовые файлы, не могу доработать программу Slippik Помощь студентам 1 22.03.2009 21:41
доработать кусочек программы Алёна Помощь студентам 1 21.05.2007 13:07