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

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

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

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

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

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

Код:
по заданию, мне надо сделать больше, но пока я сделал ввод и вывод в функциях,  прога не работает до конца, посмотрите пожалуста 
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int input (int a[10][10],int b[10],int c[80])
  { int n,m,k,i,j;
    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,n,m,k,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]);
        }
    }
    int main ()
{int a[10][10],b[10],c[80],n,m,k,i,j,sum,u1,u2,nc;
    input(a,b,c);
    print(a,b,c);
     system("PAUSE");
}

Последний раз редактировалось Юрий_91; 24.04.2010 в 16:24.
Юрий_91 вне форума Ответить с цитированием
Старый 24.04.2010, 16:03   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

1. Оформите код в тег CODE (кнопка # над окном ввода сообщения) - трудно читать.
2. Зачем у вас в main так много всего объявлено?
Код:
int a[10][10],b[10],c[80],n,m,k,i,j,sum,u1,u2,nc;
Даже если все это потом будет нужно (в данный момент нужны только a, b, c), то можно же и по-человечески в несколько строк сгруппировать.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 24.04.2010, 16:10   #3
GrihaI
Пользователь
 
Регистрация: 23.04.2010
Сообщений: 13
По умолчанию

У тебя в функции int print
ошибка в цикле
for (i=0;i<n;i++)
{for (j=0;j<m;j++)
printf("%7d",a[i][j]);
чему равны n,m?
Для спасибо Z298312474269
GrihaI вне форума Ответить с цитированием
Старый 24.04.2010, 16:19   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

И правда что. Поясню для ТС его ошибку.
Код:
int input (int a[10][10],int b[10],int c[80])
{ int n,m,k,i,j;
Код:
int print (int a[10][10],int b[10],int c[80])
{int i,j,n,m,k,nc;
Это - СОВЕРШЕННО РАЗНЫЕ m и n! Они друг о друге вообще не знают.
Либо объявляйте их глобальными, либо объявляя в main передавайте в качестве аргументов: в input по ссылке (чтобы функция смогла их изменить), в остальные (которые менять их не должны) - как обычные аргументы - по значению.
Кстати, аналогично - сомневаюсь, что массивы у вас изменяются после выхода из input. Передавайте их как указатели.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 24.04.2010, 16:23   #5
Zlyden'
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 12
По умолчанию

Пост Стерт
Zlyden' вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зацикливается recv. asdo Общие вопросы C/C++ 4 23.01.2010 23:38
Программа открыается если есть другая программа. bookkc Паскаль, Turbo Pascal, PascalABC.NET 12 14.10.2009 20:09