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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2008, 21:43   #1
Zid@ne
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 49
По умолчанию Линейные и Двумерные массивы в C++

Ребята, я запарился, не получается в одной программе объединить и линейные и двумерные массивы, помогите пожалуйста...

Вычисление суммы и произведения элементов массива, удовлетворяющих
заданному критерию (н-р, подсчитать сумму положительных элементов
массива).

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main (void)
{
int main (void)
{
   int mas[3][3],odnmas[3],i,n,sum=0,proiz=1,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
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
    {
     printf("vvedite znachenie mas[%d,%d]=",i,n);
     scanf ("%d",&mas[i][n]);

     if (mas[i][n]>=0)
       sum+=mas[i][n];
     else
       proiz*=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]);

   printf ("Summa=%d\n",sum);
   printf ("Proizvedenie= %d",proiz);
   getch();
}
Нахождение количества элементов массива, удовлетворяющих заданному
критерию.

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


void main (void)
{
   int mas[3][3],i,n,sumo=0,sump=0;
   clrscr;


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

   // Vicheslenie
     if (mas[i][n]>=0)
      sump++;
     else
      sumo++;

    }

   // 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]);
     }
   printf ("Kol-vo polojotelnix elementov=%d\n",sump);
   printf ("Kol-vo otricatelnix elementov=%d\n",sumo);
   getch();
}

Замена значений элементов массива, удовлетворяющих заданному
критерию, на некоторое новое значение (заранее заданное или
вычисляемое).

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.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 znachenie mas[%d,%d]=",i,n);
     scanf ("%d",&mas[i][n]);

   // Vicheslenie
     if (mas[i][n]>=0)
      mas[i][n]=1;
     else
      mas[i][n]=0;

    }

   // 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();
}
Поиск в массиве элемента с заданным значением (линейный поиск).
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


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


   // Vvod dannix
   puts ("Vvedite celoe znachenie iskomogo chisla");
   scanf ("%d",znach);
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
    {
     printf("vvedite znachenie mas[%d,%d]=",i,n);
     scanf ("%d",&mas[i][n]);
    }
   
   // Poisk chisla v massive
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
     if (mas[i][n]==znach)
     {
      printf ("Znachenie massiva [%d,%d]= %d",i,n,znach);
      puts ("\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 вне форума Ответить с цитированием
Старый 25.12.2008, 22:01   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Zid@ne Снова линейные/двумерные массивы? =)
Вот первые два (только проверьте):
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main (void)
{
   int mas[3][3],odnmas[3],i,n,sum=0,proiz=1,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 znachenie mas[%d]=",i);
     scanf ("%d",&odnmas[i]);

     if(odnmas[i]>=0)
      sum+=odnmas[i];
     else
      proiz*=odnmas[i];
           }
     }
     else
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
    {
     printf("vvedite znachenie mas[%d,%d]=",i,n);
     scanf ("%d",&mas[i][n]);

     if (mas[i][n]>=0)
       sum+=mas[i][n];
     else
       proiz*=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]);
      }
   printf ("Summa=%d\n",sum);
   printf ("Proizvedenie= %d",proiz);
   getch();
}
=============
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>


int main (void)
{
   int mas[3][3],i,n,sumo=0,sump=0,odnmas[3],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 znachenie mas[%d]=",i);
     scanf ("%d",&odnmas[i]);
      // Vicheslenie
     if (mas[i]>=0)
      sump++;
     else
      sumo++;

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

   // Vicheslenie
     if (mas[i][n]>=0)
      sump++;
     else
      sumo++;

    }

   // 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]);
     }
   printf ("Kol-vo polojotelnix elementov=%d\n",sump);
   printf ("Kol-vo otricatelnix elementov=%d\n",sumo);
   getch();
   return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.12.2008, 22:16   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

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

int main (void)
{
   int mas[3][3],i,n,odnmas[3],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 znachenie mas[%d]=",i);
     scanf ("%d",&odnmas[i]);
     // Vicheslenie
     if (odnmas[i]>=0)
      odnmas[i]=1;
     else
      odnmas[i]=0;
        }
    }
    else
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
    {
     printf("vvedite znachenie mas[%d,%d]=",i,n);
     scanf ("%d",&mas[i][n]);

   // Vicheslenie
     if (mas[i][n]>=0)
      mas[i][n]=1;
     else
      mas[i][n]=0;

    }

   // 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();
}
==============

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


int main (void)
{
   int mas[3][3],i,n,znach,odnmas[3],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
   puts ("Vvedite celoe znachenie iskomogo chisla");
   scanf ("%d",&znach);

   if(v==1)
    for(i=0;i<3;i++)
     {
     printf("vvedite znachenie mas[%d]=",i);
     scanf ("%d",&odnmas[i]);
     }
    else
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
    {
     printf("vvedite znachenie mas[%d,%d]=",i,n);
     scanf ("%d",&mas[i][n]);
    }

   // Poisk chisla v massive
   if(v==1)
    for(i=0;i<3;i++)
    { if(odnmas[i]==znach)
      {
       printf ("Znachenie massiva [%d]= %d",i,znach);
       puts ("\n");
        } }
    else
   for (i=0;i<3;i++)
    for (n=0;n<3;n++)
     if (mas[i][n]==znach)
     {
      printf ("Znachenie massiva [%d,%d]= %d",i,n,znach);
      puts ("\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();
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 25.12.2008 в 22:21.
Sazary вне форума Ответить с цитированием
Старый 17.05.2009, 19:30   #4
depo111
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 10
По умолчанию

Помите доделать програмку дана матрица размера А(5*5) нужно заменить в строке элементы нулями которые лежат левее наибольшего(максимального) в строке к примеру вводим первую строку(на примере первой строки) 1 3 7 2 7
а результат должен быть такой 0 0 7 2 7 я так думаю тут нужно найти минимальный индекс j - столбца и присвоить ему max но почемуто не получается
#include <stdio.h>
#include <conio.h>
#define N 5
void main()
{clrscr();
int A[N][N],i,j,max,m,h,l=0;
FILE *fp;
fp=fopen("lab3.txt", "w");
for (i=0;i<N;i++)
for (j=0;j<N;j++)
{
printf ("Vvedite A[%d][%d]",i+1,j+1);
scanf ("%d", &A[i][j]);
}
clrscr();
printf ("icxodnaya matrica\n");
fprintf (fp,"icxodnaya matrica\n");
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
printf ("%d ",A[i][j]);
fprintf(fp,"%5d", A[i][j]);
}

printf("\n");
fprintf(fp,"\n");
}
printf("\n");
for (i=0;i<N;i++)
{ max=A[i][0];
for (j=0;j<N;j++)
if (A[i][j]>=max) max=A[i][j];
printf("Max %d ctroki %d\n",i+1,max);
fprintf(fp,"Max %d ctroki %d\n",i+1,max);
for (h=0;h<N;h++)
if (A[i][h]==max) l=h;
for (m=0;m<l;m++)
if (A[i][m]!=max) A[i][m]=0;
}
printf("\n");
printf ("Rezultat raboti programmi\n");
fprintf (fp,"Rezultat raboti programmi\n");
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{ printf ("%d ",A[i][j]);
fprintf (fp,"%5d ",A[i][j]);
}
printf("\n");
fprintf(fp,"\n");
}
fclose(fp);
getch();
}
depo111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерные массивы Кирилл17 Помощь студентам 2 20.12.2008 01:33
Двумерные массивы katia230990 Помощь студентам 2 10.05.2008 00:58
Двумерные массивы Nata!!!@ Помощь студентам 15 05.12.2007 16:15