Wiem ze zadanie te juz bylo ale czy mogl by kltos rozwiazac je w prostrzy sposob niz poprzednia osoba z zawarciem : while, if, for, a nie jakies printf itp. Bede bardzo wdzieczna:)
program w C++

Dwie koleżanki z klasy mat-info postanowiły kupić lakier do paznokci. Wybrały się do Galerii Białej, gdzie znalazły dobrze zaopatrzony sklep z upiększającymi akcesoriami (no i sprzedawca był przystojny…). Ustalenie koloru poszło bardzo szybko, zajęło im to zaledwie trzy godziny.

Pozostał problem kosztu lakieru. Sprzedawca przedstawił im bogatą ofertę lakierów różnych producentów. Wybór był trudny bo dysponowały ścieśle określoną kwotą pieniędzy. Dziewczętom groziło spędzenie kolejnych trzech godzin w sklepie, na szczęście w pobliże sklepu przypętał się ich kolega z pożyczonym laptopem i szybko napisał im program informujący, czy jest w sklepie lakier, którego cena jest równa kwocie którą dysponują dziewczęta.
Zadanie
Napisz program, który wczytuje najpierw liczbę naturalną N (ilość ofert, z zakresu od 3 do 1000), a następnie powinien wczytać N liczb naturalnych w jednym wierszu (są to kolejne oferty cen lakierów).
W kolejnym wierszu podajesz liczbę M - oznacza kwotę, którą dysponują koleżanki.

Wynikiem programu powinna być informacja TAK jeśli liczba M istnieje jako oferta w cenie lakierów, lub NIE - w przeciwnym przypadku.
Przykład
dla danych wejściowych:

5 6 2 8 1 10 8

Twój program powinien wypisać:

TAK

Natomiast dla danych wejściowych:

5 6 2 8 1 10 7

Twój program powinien wypisać:

NIE

1

Odpowiedzi

2010-02-15T18:48:09+01:00
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int ilosc, N[1000], M, warunek;

cout << "Pomagacz w wyborze lakieru ver. 1.0 ;)";
cout << "\nPodaj ilosc ofert: ";
while(!(cin >> ilosc) || ilosc<3 || ilosc>1000) {
cin.clear();
cin.ignore(100, '\n');
cout << "\nPodaj poprawne dane! ";
}
cout << "\nPodaj ceny ofert: ";
for(int i=0;i<ilosc;i++) {
cin >> N[i];
}
cout << "\nPodaj kase, ktora dysponujesz: ";
cin >> M;
for(int i=0;i<ilosc;i++) {
if (N[i]==M) {
warunek=1;
break;
}
else {
warunek=
0;
}
}
if (warunek==1) {
cout << "\nTAK";
}
else {
cout << "NIE";
}
cout << "\n";
system("PAUSE");
return EXIT_SUCCESS;
}

PS. printf to to samo co co cout, tylko pochodzące z języka C ;)