C++ спешна помощ

Vladkata

Registered
Здравейте!

Трябва ми помощ за това:
Код:
Да се дефинира двумерен масив, 4 реда и 4 колони. Да се въведат стойности за елементи от клавиатурата . Да се изведат всички положителни числа.

Благодаря предварително!
 

Fakeheal

Super Moderator
C++ вариант:

Код:
#include <iostream.h>
using namespace std;

int main() 
{
    int N = 4;
    int arr[N][N];
    int onlyPositive[N*N];
    int positiveCount = 0;
    int i = 0;
    int j = 0;
    
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < N; j++)
        {
            cin>>arr[i][j];
            
            if(arr[i][j] > 0)
            {
                  onlyPositive[positiveCount] = arr[i][j];
                  positiveCount++;
            }
        }
    }
    
    i = 0;
    for(i = 0; i <positiveCount; i++)
    {
          cout<<onlyPositive[i]<<endl;
    }

    system("pause");
    return 0;   
}

Ето и допълнително на C#:
Код:
public static void Main(string[] args)
{
	const int N = 4;
	int[,] arr = new int[N,N];
	int[] onlyPositive = new int[16];
	int positiveCount = 0;
	for(int i = 0; i < N; i++) {
		for(int j = 0; j < N; j++) {
			string input = Console.ReadLine();
			arr[i,j] = Convert.ToInt32(input);
			if(arr[i,j] > 0 ) {
				onlyPositive[positiveCount] = arr[i,j];
				positiveCount++;
			}
		}
	}
	
	for(int i = 0; i < positiveCount; i++) {
		Console.WriteLine(onlyPositive[i]);
	}
}
 

Vladkata

Registered
Златна си Ив! 3-ма човека ти благодарят! Извинявай че те разкарахме от игра, ама :D...
 

B13_Savage

Registered
Само една дребна забележка .. не зная дали си компилирал и тествал C++ програмата (и с кой компилатор), но за да работи трябва да е const int N = 4; :)
И, то е дреболия де, но преизползването така на int i е лош навик :)
 

Vladkata

Registered
B13_Savage каза:
Само една дребна забележка .. не зная дали си компилирал и тествал C++ програмата (и с кой компилатор), но за да работи трябва да е const int N = 4; :)
И, то е дреболия де, но преизползването така на int i е лош навик :)

Работи си всичко точно - 0 грешки, за 6-ца е :D!
 

B13_Savage

Registered
По стандарт не би трябвало да се компилира :)
Ако го прави, значи компилатора ти не работи правилно ;)
 

Fakeheal

Super Moderator
B13_Savage каза:
По стандарт не би трябвало да се компилира :)
Ако го прави, значи компилатора ти не работи правилно ;)

При мен се компилираше, но когато му я дадох излезнаха гршеки. Не съм хич навътре в C++. Трябваха да се напрвят следните промени:

const int N = 4;
махаме using namespace std;
правим std::cout и std:cin

Аз съм си келешче на тая темичка. :D
 

B13_Savage

Registered
using namespace std; си работи, навярно компилираш със Studio 6.

За това, със С++ код трябва да се уточни с кой компилатор това работи, че има известни разлики :)
 

Fakeheal

Super Moderator
B13_Savage каза:
using namespace std; си работи, навярно компилираш със Studio 6.

За това, със С++ код трябва да се уточни с кой компилатор това работи, че има известни разлики :)

Аз го пробвах (и работеше) под dev-cpp последната версия. Когато му дадох кода, той каза, че използва някакъв стар компилатор (@Vladkata) и му излизат 12 грешки. Една по една успяхме да ги отстраним. Може да не е било по най-рационалния начин де :D
 

Vladkata

Registered
Fakeheal каза:
B13_Savage каза:
using namespace std; си работи, навярно компилираш със Studio 6.

За това, със С++ код трябва да се уточни с кой компилатор това работи, че има известни разлики :)

Аз го пробвах (и работеше) под dev-cpp последната версия. Когато му дадох кода, той каза, че използва някакъв стар компилатор (@Vladkata) и му излизат 12 грешки. Една по една успяхме да ги отстраним. Може да не е било по най-рационалния начин де :D

Абе всичко точно мина, аз забравих че оправяхме грешките по тела :D...
 

Горе