Премини към съдържанието

Препоръчан отговор


здравейте, по-долу съм дала задачата си, направих кода,програмата тръгна,но когато въведа 5 реда,5 стълба,въвеждам ги и вместо да ми изкара резултат ми дава отново да ги въведе.. Ето задачата и кода надявам се да ми помогнете :) 

Даден е двумерен масив У с n реда и m стълба. Да се състави алгоритъм и напише програма, която създава нов масив Т като стойността на Тi е равна на сумата на отрицателниите елементи в i-тия ред на Y


#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;

void main(){
    system("chcp 1251");
    int n,m,i,j;
        int Y[20][20];
    cout<<"Брой редове:";cin>>n;
    cout<<"Брой стълбове:";cin>>m;
    for (i=0;i<n;i++){
        for (j=0;j<n;j++){
            cout<<"Елемент["<<i<<"]["<<j<<"]=";
            cin>>Y[j];
        }
    }
int T[20];
for (i=0;i<n;i++){
    float sum=0;
    for (j=0;j<n;j++){
        if(Y[j]<0){
            sum=sum+Y[j];}
        else T=0;}
    for(i=0;i<n;i++)
        cout<<"Нов масив"<<i<<":"<<T<<endl;
}
}

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

току-що, Цветелина Стоянова написа:

 

здравейте, по-долу съм дала задачата си, направих кода,програмата тръгна,но когато въведа 5 реда,5 стълба,въвеждам ги и вместо да ми изкара резултат ми дава отново да ги въведе.. Ето задачата и кода надявам се да ми помогнете :) 

Без да претендирам за изчерпателност (т.е. може да има и други грешки) - неправилно си написал цикъла за стълбовете, - трябва да е от 0 до m, не до n. неправилно достъпваш елементите от масивите - двумерния с един индекс, а едномерния изобщо не подаваш.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 4 минути, flare написа:

Без да претендирам за изчерпателност (т.е. може да има и други грешки) - неправилно си написал цикъла за стълбовете, - трябва да е от 0 до m, не до n. неправилно достъпваш елементите от масивите - двумерния с един индекс, а едномерния изобщо не подаваш.

Едномерния ми не трябва ли да е: int T[20];

Не можах да Ви разбера за "неправилно достъпваш елементите от масивите - двумерния с един индекс"

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 3 минути, Цветелина Стоянова написа:

Не можах да Ви разбера за "неправилно достъпваш елементите от масивите - двумерния с един индекс"

ами вижте си кода:

        int Y[20][20];  // Това е двумерен масив, тоест за да правите нещо с даден елемент ви трябват два индекса - примерно "ред" и "стълб"
    cout<<"Брой редове:";cin>>n;
    cout<<"Брой стълбове:";cin>>m;
    for (i=0;i<n;i++){
        for (j=0;j<n;j++){
            cout<<"Елемент["<<i<<"]["<<j<<"]=";
            cin>>Y[j]; // Обаче тук подавате само един индекс и това е грешно.

Аналогично за посочения масив T. трябва да посочите кой елемент искате да ползвате с един индекс, а вие използвате само името на масива.

Редактирано от flare (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Горещи теми в момента

  • Подобни теми

    • от Chris Panov
      Здравейте,
      В момента имам сериозен проблем със взимането на броят на елементи в даден вектор.
      vec.size(); и  
      sizeof(vec) / sizeof(vec[0]); не работят. Програмата те пита за брой ключове за даден тест, въвеждаш ключовете, после въвеждаш и отговорите, които са били дадени, и програмата ги сравнява и в зависимост от това колко верни отговори имаш ти дава точки. Ключовете и дадените отговори са тип char. ("A", "B", "C" etc.)
      Ето го и кода, като повечето съм го направил на коментар за да си тествам само функцията която извежда броя на елементите.
      #include "stdafx.h" #include <iostream> #include <vector> #define CONSOLE_LOG(x) std::cout << x; std::vector<char> keys = {'A', 'B', 'C', 'D', 'E'}; std::vector<char> studentAnswers; int n, points = 0; char key, answer; template <typename T> T vecSize(std::vector<T>& vec) { T size = vec.size(); return size; } /* template <typename T1> void enterKeys(std::vector<T1>& k) { CONSOLE_LOG("Please enter the number of keys: "); std::cin >> n; for (int i = 0, counter = 1; i < n, counter <= n; i++, counter++) { CONSOLE_LOG("Key " << counter << ": "); std::cin >> key; k.emplace_back(key); } } template <typename T2> void enterAnswers(std::vector<T2>& stAns) { for (int i = 0, counter = 1; i < n, counter <= n; i++, counter++) { CONSOLE_LOG("Answer " << counter << ": "); std::cin >> answer; stAns.emplace_back(answer); } } template <typename T3> void getGrade(std::vector<T3>& x, std::vector<T3>& y) { for (int i = 0; i < n; i++) { if (x[i] == y[i]) { points++; } } CONSOLE_LOG("Points: " << points); } */ int main() { /* enterKeys(keys); enterAnswers(studentAnswers); getGrade(studentAnswers, keys); */ std::cout << keys.size() << std::endl; std::cout << vecSize(keys) << std::endl; std::cin.get(); std::cin.get(); std::cin.get(); return 0; } Опитах всевъзможни начини, и пак не става. Идеята е да заместя n променливата със броя на елементите от вектора. Програмата върви по един и същи начин, защото все пак в n променливата запазваме големината на вектора, но бих искал да си го направя с функция.
      Както виждате на края на програмата си извеждам тестове. Първият, който си е по конвенционалният метод си работи сам по себе си, но пък във for цикъл не бачка.
      А вторият е функцията която съм направил. Проблемът е че ми извежда непознат символ - "�"
      Проблемът е че типът на елементите във вектора е char, защото като го направих с int тип си работеше както трябва.
      Бих бил изключително благодарен ако някой може да ме насочи и да ми бутне едно рамо :)
    • от Goshko
      Да се напише програма, която създава структура "Book" като имате следните полета - Title(заглавието на книгата), Автор(Author), Цена(Price) и уникален номер на книгата(ISBN-num). Да се ваведе цяло число n и след него n на брой данни за ученика. Да се изведе на монитора данните за книгата с цена по-висока от предварително зададена.
    • от Нели Николова
      Здравейте, имам две готови задачи, но не мога да ги компилирам. Дали може да ги проверите?
      зад.1 Да се състави програма, която да сортира едномерен масив от цели числа тип short  с име X състоящ се от 19 елемента. Сортирането да се извърши във възходящ ред чрез метода пряка селекция.
      #include <iostream>
      using namespace std;
      void sortAsc(short[]);
      int main() {
          short x[] = {123,13,23,31,1,55,36,17,8,9,10,11,6,12,14,15,16,35,184,19};
           
          sortAsc(x);
          
          return 0;
      }
      void sortAsc(short x[]){
          for(short i = 0; i < 19 ; i++) {
              for(short j = i; j < 19; j++) {
                  if(x[j] < x) {
                      swap(x[j], x);
                  }
              }    
          }
          
          for(int i=0; i<19; i++)
          {
              cout << x << endl;
          }
      }
      зад. 2 Да се състави програма,която реализира динамичен стек от реални числа тип float. Стекът да се преобразува в два нови стека, един стек P за четните и един стек O за нечетните числа от стек едно. Стековете да се извеждат на екрана.
      int main() {
          stack<float>numbers;
          stack<float>p;
          stack<float>o;
          
          for(short i = 1; i <= 200; i++) {
              numbers.push(i);
          }  
          
          numbers.push(200.64);
          numbers.push(203.34);
          
          while(!numbers.empty()) {
              int number = numbers.top();
              
              if (number % 2 == 0) {
                  p.push(number);
              } else {
                  o.push(number);
              }
              numbers.pop();
          }
          
          cout << "EVEN NUMBERS:" << endl;
          
          while(!p.empty()) {
              cout << p.top() << endl;
              p.pop();
          }
          
          cout << "ODD NUMBERS:" << endl;
          
          while(!o.empty()) {
              cout << o.top() << endl;
              o.pop();
          }
          
      }
      Много Ви благодаря :)
       
  • Дарение

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.