Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
igor.
Сообщений: n/a
#1

Помогите с лабой! - C++

09.01.2008, 02:13. Просмотров 1184. Ответов 2
Метки нет (Все метки)

В Си нужно из файла вызвать матрицу. В этой матрицы найти все ненулевые элементы и написать все значения и индексы этих значений..
Вот код..ток там чтот не так..посмотрите пожалуйста!!!

Код
#include<stdio.h>
#include<alloc.h>
matrica(int **a, int *b, int *c, int m, int n, int i, int j, int *k)
{
for(i=0;i<m;i++)
 for(j=0;j<n;j++)
  if(a[i][j]!=0)
   {
    b[*k]=a[i][j];
    c[*k]=(i*n)+j;
    (*k)++;
   }
}
main()
{
int **a, *b, *c, m, n, i, j, k;
FILE *in;
if((in=fopen("1.txt","r"))==NULL)
{
printf("\n net faila"); exit(1);
}
fscanf(in, "%d%d",&m,&n);
k=m*n/2;
 a=(int**)malloc(m*sizeof(int*));
  for(i=0;i<m;i++)
   a[i]=(int*)malloc(n*sizeof(int));
  b=(int*)malloc(k*sizeof(int));
  c=(int*)malloc(k*sizeof(int));
for(i=0;i<m;i++)
 for(j=0;j<n;j++)
  fscanf(in,"%d",&a[i][j]);
matrica(a,b,c,m,n,i,j,&k);
 {
  printf("\n OTVET \n");
  printf("Element  Indeks");
 for(i=0;i<k;i++)
  printf("\n %d         %d",b[i],c[i]);
 }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2008, 02:13     Помогите с лабой!
Посмотрите здесь:

C++ Помогите с лабой
C++ помогите с
Помогите !!!! C++
C++ Помогите!
хэлп с лабой) C++
C++ Кто может помочь с Лабой на С++,я не могу написать((
C++ ПОМОГИТЕ С++
C++ помогите
Помогите справиться с лабой по массивам) C++
Помогите!!!!=) C++
C++ C++ и бинарные файлы(непонятки с лабой)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vadim55
0 / 0 / 0
Регистрация: 01.01.2008
Сообщений: 6
09.01.2008, 10:18     Помогите с лабой! #2
что то здесь все поставлено с ног на голову
если вы сами писали этот код напишите комментарии к каждой части программы что она делает , только после этого я смогу Вам помочь.
Lord_Voodoo
Супер-модератор
8510 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,854
Завершенные тесты: 1
09.01.2008, 10:25     Помогите с лабой! #3
твой код не осилил, сделал так:
Код
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
void matrica(int *a, int *b, int *c, int n, int &k)
{
  for(int i = 0;i < n;i++)
      if(a[i] != 0){
        b[k] = a[i];
        c[k] = i;
        k++;
      }
};
int main()
{
int *a, *b, *c, m = 0, k = 0;
FILE *in;
if((in=fopen("1.txt","r"))==NULL)
{
printf("\n net faila"); exit(1);
}
while(fscanf(in, "%d") != EOF) m++;
a = (int*)malloc(m*sizeof(int));
b = (int*)malloc(m*sizeof(int));
c = (int*)malloc(m*sizeof(int));
for(int i = 0; i < m; i++){
  b[i] = 0;
  c[i] = 0;
}
rewind(in);
for(int i = 0;i < m;i++) fscanf(in,"%d", &a[i]);
matrica(a, b, c, m, k);
std::cout<<"Value: "<<std::endl;
for(int i = 0;i < k;i++)
  std::cout<<b[i]<<" ";
std::cout<<std::endl;
std::cout<<"Index: "<<std::endl;
for(int i = 0;i < k;i++)
  std::cout<<c[i]<<" ";
std::cout<<std::endl;
return 0;
}
Yandex
Объявления
09.01.2008, 10:25     Помогите с лабой!
Ответ Создать тему
Опции темы

Текущее время: 23:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru