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

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

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

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

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

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

надо вычислить сумму и произведение элементов двумерных и одномерных массивов в одной программе...

у меня код только для двумерных:

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

void main (void)
{
   int mas[3][3],i,n,sum=0,proiz=1;
   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]);
     sum+=mas[i][n];
     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();
}
не знаю как втиснуть код ещё для линейных массивов. помогите плиз...
Zid@ne вне форума Ответить с цитированием
Старый 23.12.2008, 17:13   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

У вас же уже была подобная задача. Решается аналогично - добавлением возможности выбора типа массива (линейный/двумерный).
Код:
#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]);
     sum+=odnmas[i];
     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]);
     sum+=mas[i][n];
     proiz*=mas[i][n];
    }
   printf("\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();
   return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

спасибо большое! я по ходу дела разбираюсь... общее представление есть...

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


Код:
int size=10;
int *array = new int[size];     //выделили память под массив
...
void bubblesort(int *arr, int n)
{
    int i;
    int j;
    double tmp;

    for(i = 0; i <= n-1; i++)
    {
        for(j = 0; j <= n-2-i; j++)
        {
            if( arr[j]>arr[j+1] )
            {
                tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
            }
        }
    }
}
при компиляции выдаёт ошибки:

Compiling 11-8.CPP:
Linking 11-8.exe:
Linker Error: Indefined symbol _main in module c0.ASM


как избавится от этих ошибок? или прогу переделывать надо? (Си под ДОС)
Zid@ne вне форума Ответить с цитированием
Старый 23.12.2008, 19:12   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
double tmp;
тип должен быть int, т.к. дальше идет
Код:
arr[j+1] = tmp;
несоответствие типов.
------
Собственно, больше ничего не менял. Ошибка кроется где-то еще (не в этом куске).

Вот это у меня работает.
Код:
#include <stdio.h>
#include <conio.h>
using namespace std;

int size=10;
int *array = new int[size];     //выделили память под массив

void bubblesort(int *arr, int n)
{
    int i;
    int j;
    int tmp;

    for(i = 0; i <= n-1; i++)
    {
        for(j = 0; j <= n-2-i; j++)
        {
            if( arr[j]>arr[j+1] )
            {
                tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
            }
        }
    }
}
int main()
{
int i;
for(i=0;i<size;i++)
 {
   scanf("%d",&array[i]);
   printf("\n");
    }
bubblesort(array,size);
printf("\n");
for(i=0;i<size;i++)
 printf("%d\n",array[i]);
getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

благодарю, Sazary. разберусь, думаю!)
Zid@ne вне форума Ответить с цитированием
Старый 23.12.2008, 19:22   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Рад помочь.. )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод элементов массива.Изменение элементов массива. Vesnushka18 Помощь студентам 6 09.06.2011 13:05
вычислить номер и величину максимального элемента массива, произведение элементов, среднее арифметическое Romer9999 Паскаль, Turbo Pascal, PascalABC.NET 6 19.01.2009 16:35
Произведение элементов массива gamer123 Помощь студентам 5 19.01.2008 22:02
Сумма элементов массива, больших А Sultan Помощь студентам 1 21.04.2007 11:13