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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2008, 17:16   #1
Zid@ne
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 49
По умолчанию Си под Дос. Массивы

доброго времени суток, вот есть задача
Ввод/вывод элементов массива в удобной для пользователя форме (для двумерных массивов – вывод в прямоугольном виде).

а вот решение:

Код:
#include <stdio.h>
#include <conio.h>

void main (void)
{
   int mas[3][3],i,n;
   clrscr;


   // Vvod dannix
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
    {
     printf ("vvedite mas[%d,%d]=",i,n);
     scanf ("%d",&mas[i][n]);
    }

   // Vivod dannix
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)

     if (n==2)
      printf ("%d\n",mas[i][n]);

     else
      printf ("%d",mas[i][n]);

   getch();
}
НО оно только для двумерных массивов...

подскажите что добавить для того чтобы прога работала для двумерных и линейных массивов....
Zid@ne вне форума Ответить с цитированием
Старый 22.12.2008, 17:39   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Например, так:
Код:
#include <stdio.h>
#include <conio.h>

int main (void)
{
   int mas[3][3],odnmas[3],i,n,v;

    printf("Vybor massiva: (1-linejnyj, 2- dvumernyj) ");
    v = 0;
    while(v==0)
     {
      scanf("%d",&v); printf("\n");
      if(v!=1&&v!=2) v=0;
        }
   // Vvod dannix
   if(v==1)
    {
     for(i=0;i<3;i++)
     { printf ("vvedite mas[%d]=",i);
     scanf ("%d",&odnmas[i]);
      }
    }
   else
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
    {
     printf ("vvedite mas[%d,%d]=",i,n);
     scanf ("%d",&mas[i][n]);
    }

   // Vivod dannix
   if(v==1)
    {
     for(i=0;i<3;i++)
      printf("%d ",odnmas[i]);
    }
   else

   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
     {
     if (n==2)
      printf ("%d\n",mas[i][n]);

     else
      printf ("%d ",mas[i][n]);
     }
   getch();
   return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.12.2008, 20:11   #3
Zid@ne
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 49
По умолчанию

Спасибо, Sazary!

а задачку вот такую
2. Заполнение массивов случайными числами и по заданной формуле.

я решил, но не полностью. вот код:

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


void main (void)
{
   int mas[3][3],i,n;
   clrscr;
   randomize();


   // Vvod dannix
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
    {
     mas[i][n]=random(100);
    }

   // Vivod dannix
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)

     if (n==2)
      printf ("%d\n",mas[i][n]);

     else
      printf ("%d ",mas[i][n]);

   getch();
}
заполнил случайными числами, а по заданной формуле незнаю как. формула вроде (i+1; j+1)... помогите плиз формулу втиснуть в код, чтобы работало...
Zid@ne вне форума Ответить с цитированием
Старый 22.12.2008, 20:16   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Zid@ne Как-то не очень понятно..
(i+1; j+1) - често говоря, мне это мало чем напоминает формулу ))
Не могли бы уточнить?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.12.2008, 05:48   #5
Zid@ne
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Zid@ne Как-то не очень понятно..
(i+1; j+1) - често говоря, мне это мало чем напоминает формулу ))
Не могли бы уточнить?
вроде как f(i;j)=(i+1;j+1).
вообщем надо чтобы массив выводился по определённой форме, вроде как зависимость должна быть между числами....
Zid@ne вне форума Ответить с цитированием
Старый 23.12.2008, 11:47   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Zid@ne И все же вопрос остается.
f(i;j) - это элемент матрицы, тогда в правой части уравнения должно быть что-то вроде (i+1)*(j+1). А в таком виде это больше напоминает координаты точки, что к данной задаче отношения не имеет.
Может, нужно подойти к вопросу с другой стороны:
Цитата:
вроде как зависимость должна быть между числами....
Уточнение: между какими числами?

Вообще, заполнение массива по формуле может выглядеть как-нибудь так:
Код:
for (i=0;i<3;i++)
    for (n=0;n<3;n++)
    {
     mas[i][n]=(i+1)*(j+1);
    }
Это как должно выглядеть в принципе.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 23.12.2008, 16:55   #7
Zid@ne
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 49
По умолчанию

Спасибо за подсказки Sazary! вроде справился!
Zid@ne вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа в ДОС, C++ Zid@ne Помощь студентам 11 20.12.2008 02:42
Массивы структур.СИ под ДОС. Zid@ne Общие вопросы C/C++ 2 12.12.2008 18:16
Помогите переделать 2 задачи под динамические массивы (Паскаль) mpegable Помощь студентам 2 27.05.2008 17:32