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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2011, 23:41   #1
Hellgate
Пользователь
 
Аватар для Hellgate
 
Регистрация: 29.03.2011
Сообщений: 44
Печаль Поиск суммы по числам относительно другого числа

Задача:
для каждого A[i][j] найти сумму элементов являющихся простыми числами в выделенной области

X _ _ _ _ _
_ X _ _ _ X
_ _ X _ X _
_ _ _ E _ _
X X X X X X
_ _ _ _ _ _

у меня проблема с функцией как раз производящей поиск и сложение...

глобальные переменные X[10][10],a,b,x,y

компилируется, ввод проходит нормально, на этапе выполнения этой функции стопорится

Код:
void isp()
{int i,j,sum,ch,k,m,n,r;

//poisk po stroke nize el-ta

i=x+1;j=1;sum=0;
while(j<=a)
{ch=2;
    while(ch<X[i][j])
    {k=0; if(X[i][j]%ch==0)
{k++;}ch++;}
if(k==0){sum=sum+X[i][j];}
j++;}

//poisk po pravoi diagonali

i=1;j=1;m=x;n=y;r=1;
while(i<=b){while(j<=a)
    {if(i==m-1*r || j==n-1*r)
        {ch=2; while(ch<X[i][j]){k=0; if(X[i][j]%ch==0)
                {k++;}ch++;}if(k==0){sum=sum+X[i][j];}
            j++;r++;}i++;}}

//poisk po levoi diagonali

i=1;j=1;m=x;n=y;r=1;
while(i<=b){while(j<=a)
    {if(i==m-1*r || j==n+1*r)
        {ch=2; while(ch<X[i][j]){k=0; if(X[i][j]%ch==0)
                {k++;}ch++;}if(k==0){sum=sum+X[i][j];}
            j++;r++;}i++;}}
printf("\nDlia el-ta %d-%d summa -> %d\n",x,y,sum);}

Последний раз редактировалось Hellgate; 08.09.2011 в 15:29.
Hellgate вне форума Ответить с цитированием
Старый 08.09.2011, 15:26   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

1 Сделайте свой код более удобочитаемым.где-то так
Код:
i=1;
j=1;
m=x;
n=y;
r=1;
while(i<=b)
{
   while(j<=a)
    {
       if(i==m-1*r || j==n-1*r) //подозреваю   if(i==(m-1*r )|| j==(n-1*r))
       {
         ch=2;
         while(ch<X[i][j])
          {
            k=0; 
            if(X[i][j]%ch==0)
            k++;
            ch++;
         }
     if(k==0)
        sum=sum+X[i][j];
     j++;
     r++;
}
i++;
}
}
2 Оформите тег-кодом, для чего вделите текст вашей программы в сообщении и нажмите значок # на панели с сообщением.
3. Если программа на С или С++, то индексы элементов начинаются с 0, может выходите за границы.
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 08.09.2011 в 15:29.
Sweta вне форума Ответить с цитированием
Старый 09.09.2011, 12:32   #3
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Вот поиск по строке ниже заданной. Но учтите индексация элементов массива начинается с 0, и если Вы вводите к примеру х=2,то для массива это 3-я строка. Тоже с у.
И если будете писать неудобочитаемые коды на помощь рассчитывать тяжело.
Код:
//poisk po stroke nize el-ta

i=x;j=0;sum=0;
while(j!=a)
{
if((X[i][j]==1)||(X[i][j]==2)||(X[i][j]==3))
  sum+= X[i][j];
   else
   {
    ch=2;
    k=0;
    while(ch!=X[i][j])
    {
     if(X[i][j]%ch==0)
        k++;
     ch++;
     }
    if(k==0)
       sum=sum+X[i][j];
    }
j++;
}
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 09.09.2011, 22:04   #4
Hellgate
Пользователь
 
Аватар для Hellgate
 
Регистрация: 29.03.2011
Сообщений: 44
По умолчанию

я в курсе что индексация с нуля, я при вводе тоже с 1 начинал, мне так порой удобнее и в основном волнуют поиски по диагонали

в будущем постараюсь писать более удобочитаемо

Последний раз редактировалось Hellgate; 09.09.2011 в 22:10.
Hellgate вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск одинаковых значений в стобце, возврат суммы чисел из другого столбца в найденных строках! Kup Microsoft Office Excel 2 25.03.2010 10:15
Найти числа суммы Igor111 Помощь студентам 2 02.03.2010 21:56
вводим два числа, получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m Sparky Помощь студентам 2 22.11.2009 21:59
Увеличение числа относительно другого поля ValeriyD Microsoft Office Excel 4 01.08.2009 20:33
Поиск суммы Janette Паскаль, Turbo Pascal, PascalABC.NET 2 23.02.2008 21:39