• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Stworzenie funkcji do programu

–1 głos
59 wizyt
pytanie zadane 9 lutego 2018 w C i C++ przez Sic Mądrala (7,280 p.)
zamknięte 13 lutego 2018 przez Sic

Program działa jednak nie tak jak powinien:

getinfo() ma za zadanie pobierać i zapisywać dane. Wprowadzenie danych kończy się, gdy tablica jest pełna. Funkcja zwraca liczbę studentów wpisanych do tablicy.

display1() pobiera parametr struktury student i pokazuje jej zawartość.

display2() pobiera jako parametr adres struktury student i pokazuje jej zawartość tej struktury.

display3() pobiera jako parametr adres pierwszego elementu tablicy ze strukturami student oraz liczbę elementów tablicy, po czym wyświetla zawartość wskazanych struktur

 

Oto kod:

#include <iostream>

const int SLEN = 30;
struct student
{
	char fullname[SLEN];
	char hobby[SLEN];
	int ooplevel;
};

int getinfo (student pa[], int n);
void display1 (student st);
void display2 (const student *ps);
void display3 (const student pa[], int n);

int main()
{
	std::cout << "Podaj wielkosc grupy: ";
	int class_size;
	std::cin >> class_size;
	while(std::cin.get() != '\n')
		continue;
student * ptr_stu = new student[class_size];
	int entered = getinfo(ptr_stu, class_size);
	
	for(int i=0; i < entered; i++)
	{
		display1(ptr_stu[i]);
		display2(&ptr_stu[i]);			
	}

	display3(ptr_stu, entered);
	delete [] ptr_stu;
	std::cout << "\n\nGotowe\n";

	return 0;
}

int getinfo (student pa[], int n)
{
	for(int i=0; i < n; i++)
	{
		std::cout << "Podaj nazwisko studenta: ";
		std::cin.get(pa[i].fullname, SLEN);
/*if(!(std::cin.get(pa[i].fullname, SLEN)))
		{
			std::cout << "Blad! Ponow probe: ";
			std::cin.get(pa[i].fullname, SLEN);
		}
		else
		{*/
			std::cout << "Podaj hobby student: ";
			std::cin.get(pa[i].hobby, SLEN);
		/*}
		
		if(!(std::cin.get(pa[i].hobby, SLEN)))
		{
			std::cout << "Blad! Ponow probe: ";
			std::cin.get(pa[i].hobby, SLEN);
		}	
		else
		{*/
			std::cout << "Rok studiow: ";
			std::cin >> pa[i].ooplevel;
		//}	
	}
	std::cout << std::endl;
	return n;
}

void display1 (student st)
{
	std::cout << "\tWartosc\n" << st.fullname[SLEN] << "\n" << st.hobby[SLEN
] << "\n"  << st.ooplevel << "\n";
}

void display2 (const student * ps)
{	
	std::cout << "\tAdresy\n" << &ps->fullname[SLEN] << "\n" << &ps->hobby[S
LEN] << "\n" << &ps->ooplevel << "\n\n"; 
}

void display3 (const student pa[], int n)
{
	std::cout << "Adresy pierwszych elementow struktury\n" << &pa[0].fullnam
e[SLEN] << "\n" << &pa[0].hobby[SLEN] << "\n" << &pa[0].ooplevel;

}

Problem jej w tym, że:

1. Nie można wpisać więcej niż jedną literę, chociaż jest std::cin.get().

2. Nie wyświetla dwóch pierwszy wartości i adresów.

komentarz zamknięcia: Inne
komentarz 9 lutego 2018 przez Piotr Batko Mądrala (5,740 p.)
Zapomniałeś napisać co nie działa.

Podobne pytania

0 głosów
1 odpowiedź 54 wizyt
0 głosów
1 odpowiedź 66 wizyt
pytanie zadane 19 października 2016 w C i C++ przez Evelek Nałogowiec (28,830 p.)
0 głosów
1 odpowiedź 122 wizyt
pytanie zadane 22 lutego 2016 w C i C++ przez Mikruuus Początkujący (330 p.)
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

62,438 zapytań

108,589 odpowiedzi

226,699 komentarzy

35,997 pasjonatów

Przeglądających: 63
Pasjonatów: 6 Gości: 57

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...