Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z kodem w ćwiczeniu?

Ostatnio zmodyfikowano 2010-09-22 10:27
Autor Wiadomość
rossd2e
Temat założony przez niniejszego użytkownika
Problem z kodem w ćwiczeniu?
» 2010-09-21 13:37:00
Mam problem w kodzie do takiej treści zadania.Za alokuj Tablice dynamiczną, za pomocą operatora new , w której wpisujemy wartości typu w kolejności int, char, double. Pierwsza to długość, druga to nazwa, a trzecia to waga.
Problem pojawia się gdy po skompilowaniu programu gdy po kompilacji i uruchomieniu programu zadanie się wykonuje.
Lecz można wpisać więcej niż jedną cyfrę typu długość typu int, jedną literę i normalną ilość cyfr typu double. Jeżeli wpiszemy więcej niż jeden znak w miejscu wpisywanie liter program odrazy przechodzi do kolejnej linijki i kończy program. Problemem są jeszcze zakończenia delete nawet gdy program zadziała, to następuje przeciążenie i pojawia się błąd. Jeżeli ktoś wie jak rozwiązać problem to niech odpiszę z wyjaśnieniem i poprawą kodu. Z góry dziękuje.


C/C++
#include <iostream>
#include <string>
#include <cstring>
using namespace std;


char * nazwa();
double * waga();
int * srednica();


int main()
{
   
    int srednica1;
    char nazwa1;
    double waga1;
   
    int * nazwa = new char[ 80 ];
    int * waga = new double[ 20 ];
    int * srednica = new int[ 20 ];
   
    cout << "Podas srednice pizzy : ";
    cin >> srednica1;
    srednica = & srednica1;
    cin.get();
   
    cout << "Podaj nazwe pizzy : ";
    cin >> nazwa1;
    nazwa = & nazwa1;
   
    cout << "Podaj wage pizzy : ";
    cin >> waga1;
    waga = & waga1;
   
    cout << "A oto wyniki  srednica : " << * srednica << " nazwa : " << * nazwa << " waga : " << * waga << endl;
   
   
    // delete [] nazwa;
    // delete [] waga;
    //delete [] srednica;
   
   
    system( "pause" );
   
    return 0;
   
}
P-22211
malan
» 2010-09-21 20:40:27
C/C++
#include <iostream>

int main()
{
    int * length = 0;
    int * wage = 0;
    char * name = 0;
   
    name = new char[ 80 ];
    length = new int;
    wage = new int;
   
    std::cout << "Podaj nazwe pizzy: ";
    std::cin.getline( name, 80 );
   
    std::cout << "Podaj srednice pizzy: ";
    std::cin >>( * length );
   
    std::cout << "Podaj wage pizzy: ";
    std::cin >>( * wage );
   
    std::cout << "== Zamowienie ==" << std::endl;
    std::cout << "Nazwa: " << name << std::endl;
    std::cout << "Wielkosc: " <<( * length ) << " cm" << std::endl;
    std::cout << "Waga: " <<( * wage ) << " dag";
   
    delete[] name;
    delete wage;
    delete length;
    return 0;
}
P-22230
rossd2e
Temat założony przez niniejszego użytkownika
» 2010-09-21 22:35:15
No dobrze ten kod działa ale co zrobić aby najpierw można było wpisać średnicę a dopiero później nazwę?
P-22247
malan
» 2010-09-21 22:44:17
Wystarczy zamienić cztery wiersze miejscami w kodzie i wywołać dodatkowo jedną metodę. Kombinuj ;).
P-22248
DejaVu
» 2010-09-22 10:27:37
Słaby pomysł zaczynać naukę programowania od dynamicznej alokacji pamięci.
P-22251
« 1 »
  Strona 1 z 1