Автор Тема: Задание по C++  (Прочетена 1305 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

jorju

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Задание по C++
« -: 20 Октомври 2016, 20:55:30 »
Здрвейте,

Имам следното задание:

Да се намери стойността на минималният елемент и позицията му в едномерен масив от 20 елемента?

Имам два въпроса:

1.Правилно ли е направена блок-схемата?
2.Защо кода работи правилно само когато се стартира с "Start without debugging"

// Zadanie 1kurs-1 semertar.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <stdio.h>

int main()
{
      printf("Da se nameri stoinostta na minimalniqt element i poziciqta mu v ednomeren masiv ot 20 elementa: \n");
      int a[20];
      int i;
      int n, j;
      for (i = 0; i < 20; i++)
      {
            printf("a[%d] = ", i);
            scanf_s("%d", &a[i]);
      }
      n = a[0];
      for (i = 0; i < 20; i++)
      {
            if (n > a[i])
            {
                  n = a[i];
                  j = i;
            }
      }
      printf("minimum = %d, index = %d\n", n, j);
      printf("Krai na zadachata\n");
      return 0;
}

kjufte

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 1
  • -Получени: 51
  • Публикации: 308
Re: Задание по C++
« Отговор #1 -: 20 Октомври 2016, 21:37:06 »
Със схемата не мога да ти помогна кой знае колко много, но актуалната ти схема  и самият код изглеждат грешни.

Стъпките трябва да са нещо подобно на това:
1. минимален елемент = първи елеметн на масива                                                                        // int minIndex= 0;
                                                                                                                                                              // int min = a[minIndex];
2. докато не сме стигнали последният елемент на масива                                                                 // for (int i = 1; i < 20; i++) {
3.      ако актуалният елемент е по-малък от актуалната стойност на минимален елемент           //     if(а[ i ] < min) {
4.            минимален елемент = актуален елемент                                                                          //        min = [ i ];
               индексът на минималният елемент = актуален индекс                                                        //         minIndex = i;
                                                                                                                                                              //     }
                                                                                                                                                              // }
5. 'min' съдържа стойността на най-малкият елемент в масива 'а'                                                     //  printf("minimum = %d, index = %d\n", min, minIndex );

jorju

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Re: Задание по C++
« Отговор #2 -: 20 Октомври 2016, 23:05:21 »
Здравей,
Благодаря за пояснението!!!

Ако трябва да съм честен, не разбрах кое съм объркал :)

Поздрави!!

kjufte

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 1
  • -Получени: 51
  • Публикации: 308
Re: Задание по C++
« Отговор #3 -: 20 Октомври 2016, 23:56:54 »
Ами нищо не си объркал, извинявам се :) Бърз поглед съм хвърлил отгоре отгоре и заради имената на променливите (минимума ти е променлива 'n') съм се подвел.

Какво точно имаш предвид под не работи правилно? При мене работи и изкарва правилен резултат с и без дебъгинг.

А диаграмата може би нещо такова
« Последна редакция: 21 Октомври 2016, 00:26:53 от kjufte »

jorju

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Re: Задание по C++
« Отговор #4 -: 21 Октомври 2016, 21:07:30 »
Благодаря много за помоща!!

Поздрави!!