Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2010, 02:47   #1
Юрий_91
Пользователь
 
Регистрация: 08.01.2010
Сообщений: 11
По умолчанию программа работает криво

задание: Даны матрица А[n][m] и массив В[k]. написать программу, которая вычисляет массви С, состоящий из элементов А, расположенных между минимальным и максимальным элементами каждого столбца, если сумма этих элементов ( расположенных между минимальным и максимальным) отсутствует в массиве В. Ввод данных, вывод и вычисление результата оформить в виде отдельных функций.
пожалуйста исправьте ошибки начинающего программиста
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int input (int a[10][10],int b[10],int c[80])
  { int i,j,n,m,k;
    printf("input amount of rows and colons matrix A\n:"); scanf("%d%d",&n,&m);
 printf("input matrix A\n");
 for (i=0;i<n;i++)
   { for (j=0;j<m;j++)
    scanf("%d",&a[i][j]);}
printf ("input leaght of B\n:"); scanf("%d",&k);
printf ("Input Mass B plz\n");
for (i=0;i<k;i++) scanf("%d",&b[i]);
    }
int print (int a[10][10],int b[10],int c[80])
    {int i,j;
    int n,m,nc;
     for (i=0;i<n;i++)
    {for (j=0;j<m;j++)
      printf("%7d",a[i][j]);
  printf("\n");
  }
  if (nc==0)
  printf ("No mass C\n");
  else
        {
             printf ("Mass C\n");
  for (i=0;i<nc;i++)
  printf ("%7d",c[i]);
  printf ("\n");
        }
    }
int count (int a[10][10],int b[10],int c[80])
    {int i,j,n,m,k,z,x;
    int nc,sum,max=-32768,min=32767;
    nc=0;
    i=0;
 do {
         i++;// for (i=0;i<n;i++)
        for (j=0;j<m;j++)
        {   if (a[i][j]<=min)
        { min=a[i][j];
            z=j; }
        if (a[i][j]>=max)
        {   max=a[i][j];
            x=j; }
            }
              {for (j=z;j<=x;j++)
            sum+=a[i][j];}
            for (j=0;j<k;j++)  
                if (sum!=b[j]&&x!=z)
              j=z;
              {do {
                j++;
                     // { for (j=z+1;j<x;j++)
                 c[nc++]=a[i][j];
                }
                while (j<x);
                }
                }
                while (i<=n);  
    }     
    int main (int m,int n,int k,int nc)
{int a[10][10],b[10],c[80],i,j;
    input(a,b,c);
    count(a,b,c);
    print(a,b,c);
     system("PAUSE");
}
Юрий_91 вне форума Ответить с цитированием
Старый 25.04.2010, 08:40   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
 int main (int m,int n,int k,int nc)
Мейн гот, что это???
Я вам совсем не то говорил!
Во-первых, разберитесь как следует с передачей аргументов, глобальными и локальными переменными.
Во-вторых, один вопрос - одна тема! Не плодите тем-двойников с одними и теми же (плюс новые) ошибками в одной и той же программе, пишите все в одном месте.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему DrawText криво работает? STill_ace Общие вопросы C/C++ 11 24.08.2009 15:57
принтер криво печатает текст SKS Компьютерное железо 2 23.04.2009 16:54
Криво работает polygon ROD Общие вопросы C/C++ 5 06.02.2009 20:54
Программа не работает ZYRGiX Помощь студентам 2 22.07.2008 21:44
Программа не работает Михаил Юрьевич Общие вопросы Delphi 2 19.04.2008 23:27