Pālekt uz saturu


Foto
- - - - -

C programma ar masīvu aizveras uz DevC++


  • Please log in to reply
5 murgojumi pa šo tēmu

#1 SLSK

SLSK
  • Biedri
  • 215 purkšķi
  • Atrodos:Rīga
  • Intereses:IT, mazliet programmēšana, auto, daba.

Sacūkots 05 May 2012 - 09:10

Labdien!

Uzrakstīju programmu, kura apstrādā masīvu ar nejauši izvēlētiem skaitļiem, vai lietotāja ievadītiem. Problēma tāda, ka izstrāde notika uz Ubuntu kompilatoru, un viss strādāja.

Pārbaudot uz DevC++ programmu, sintakses kļūdas nebija, bet programma aizvērās brīdī, kad lietotājs izvēlējās 1 (automātiskā aizpilde) vai pēc manuālas masīvu vērtības ievades. Lūdzu paskatīt, kur varētu būt kļūda. Jau iepriekš - liels paldies!

#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <math.h>
using namespace std;
int raditaji(int** mas,int x,int y)
{

	 for(int i=0;i<x;i++)
	 {
		 for(int j=0;j<y;j++)
		 {
		 cout<<**mas<<" ";
			 ++**mas;
		 }
			  cout<<endl;
	 }
return 0;
    }
int mainigie(int** mas,int x,int y)
{
	 for (int i=0;i<x;i++)
    {
	   for(int j=0;j<y;j++)
	   {
	   mas[i][j]=rand()%10+1;
	   cout<<mas[i][j]<<" ";
	   }
	 cout<<endl;
    }
return 0;
}

int main()
{
	   
   
    srand ( time(NULL) ); 
    int x;
    int y;
    cout << "Autors: ..." << endl;
    cout << "Ievadiet masiva izmeru" <<endl;
    cout <<"X:";
    cin >> x;
    cout <<"Y:";
    cin >> y;
    int** masivs =new int* [x];
    for (int i=0;i<x;i++)
    {
	    masivs[i]=new int[y];
    }
    cout << "Ievadiet 1 automatiskai masiva aizpildei"<<endl;
    cout << "Ievadiet 2 manualai masiva aizpildei" <<endl;
    int izvele;
    bool test=false;
    do{
    cin >> izvele;
    switch(izvele)
    {
    case 1: test=true;
    cout << "Masivs tiks aizpildits automatiski" <<endl;
    mainigie(masivs,x,y);
    break;
    case 2: test= true;
    cout << "Masivs tiks aizpildits manuali" <<endl;
    cout << "Ievadiet skaitlus lidz tiek pazinots, ka masivs ir aizpildits"<<endl;
    for (int i=0;i<x;i++)
    {
	   for(int j=0;j<y;j++)
	   {
	   cin>> masivs[i][j];
	   }
    }
    cout << "Masivs ir aizpildits"<<endl;
    cout << "Ievadita masiva uzvade"<<endl;
    raditaji(masivs,x,y);
    break;
    default: cout<< "Ievadita nepareiza izvele. Ludzu atkartot to" <<endl; break;
    }
}while(test!=true);
    cin.get();
    return 0;
}



Nevēlies vairs redzēt šo reklāmu? Kļūsti par BOOT.Lv foruma biedru!

#2 abanormal

abanormal
  • Biedri
  • 172 purkšķi

Sacūkots 05 May 2012 - 13:59

system("PAUSE"); , pieliec šo beigās , varbūt aizies?

Nedaudz pasmirdēja abanormal: 05 May 2012 - 14:00


#3 Inspektors Caps

Inspektors Caps
  • Biedri
  • 1,871 purkšķi

Sacūkots 05 May 2012 - 14:30

abanormal, nevis "varbūt aizies", bet viņam viss jau tagad strādā korekti. Vienkārši konsole aizveras līdz ar programmas beigām. Ja vēlas lai konsole neaizveras, vajag vai nu "cmd.exe" palaist manuāli un programmu darbināt no tās, vai pielikt beigās to pašu system("pause"); vai ko līdzīgu.

#4 SLSK

SLSK
  • Biedri
  • 215 purkšķi
  • Atrodos:Rīga
  • Intereses:IT, mazliet programmēšana, auto, daba.

Sacūkots 05 May 2012 - 18:47

Liels paldies! Tagad es tikai vienu nesaprotu, kāpēc zem Ubuntu kompilatora viss darbojas tāpat?

#5 japets

japets
  • Biedri
  • 511 purkšķi

Sacūkots 05 May 2012 - 19:19

Kādēļ māte savu kaķi pabaro un paglauda, bet meita savējo tikai pabaro? Vai tas atkarīgs no kaķa?
Acīmredzot zem Ubuntu izstrādes vide palaižot programmu uzvedas mazliet citādāk.

#6 vdl

vdl
  • Biedri
  • 99 purkšķi

Sacūkots 05 May 2012 - 21:56

ja tu uz ubuntu palaid zem bash/sh tad tas ir tas pats kaa zem winda palaistu ieksh cmd - nekaada atshkjiriiba iisti nav


 
 
 
 


0 Keksi snaikstās ap šo sviestu

0 keksi(s), 0 pacani(s), 0 anonīmi(s) alkololiķi(s)