Да се напише програма, която позволява да се въведат N числа и отпечатва:
- сумата им и произведението им
- най-малкото и най-голямото от тях
- броят на положителните
- дали всред тях се среща числото X
Да се напише програма, която позволява да се въведат N числа и отпечатва:
[c] за С++ програми [/c]
[pascal] за паскал [/pascal]

за Къде се намира точка
за Вмъкване и изтриване на елемент *
за Позицията на X




за Броят на максималните елементи




за Броят на максималните елементи
за Пари за закуска




за Ученици с дадена оценка




за По-големи от средното| П | В | С | Ч | П | С | Н |
|---|---|---|---|---|---|---|
| « февр. | ||||||
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | ||||||
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,suma,max,min,br,x,chislo; double proiz=1; cout<<"Wuwedete kolko chisla 6te wuwedete "; cin>>n; cout<<endl<<"Wuwedete chisloto za prowerka "; cin>>x; cout<<"Wuwedete chislata \n"; bool tmp=false; suma=0; max=0; min=0; br=0; for (int i=1;i<=n;i++) { cin>>chislo; suma+=chislo; proiz*=chislo; if (chislo>0) br+=1; if (chislo==x) tmp=true; if(min==0) min=chislo; if (chislo>max) max=chislo; if (chislo<min) min=chislo; } cout<<"Sumata na chislata e "<<suma<<endl; cout<<"Proizwedenieto na chislata e "<<proiz<<endl; cout<<"Broq na polojitelnite chisla e "<<br<<endl; cout<<"Nai-golqmoto chislo e "<<max<<" a nai malkoto e "<<min<<endl; if (tmp) cout<<x<<" se sreshta sred wuwedenite chisla \n"; else cout <<x<<" ne se sreshta sred wuwedenite chisla \n"; system("PAUSE"); return EXIT_SUCCESS; }Преправих решението. Моля изтрийте предишното.
Калояне, много добре направена задача, но има две грешки. Ето още една хакерска задача за всички, които четат този коментар: при какви стойности (валидни цели числа) кода за най-малко и най-голямо въведено число няма да работи вярно?
За отрицателни числа максималното число си остава нула. Не го бях съобразил. А другата грешка вероятно е, че при въвеждане на отрицалтелно число за стойност на „n“ програмата прескача цикъла.
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,suma,max,min,br,x,chislo; double proiz=1; cout<<"Wuwedete kolko chisla 6te wuwedete "; cin>>n; cout<<endl<<"Wuwedete chisloto za prowerka "; cin>>x; cout<<"Wuwedete chislata \n"; bool suwpadenie=false,maks=false; suma=0; max=0; min=0; br=0; for (int i=1;i<=abs(n);i++) { cin>>chislo; suma+=chislo; proiz*=chislo; if (chislo>0) br+=1; if (chislo==x) suwpadenie=true; if (min==0) min=chislo; if (maks) { max=chislo; maks=true; } if (chislo>max) max=chislo; if (chislo<min) min=chislo; } cout<<"Sumata na chislata e "<<suma<<endl; cout<<"Proizwedenieto na chislata e "<<proiz<<endl; cout<<"Broq na polojitelnite chisla e "<<br<<endl; cout<<"Nai-golqmoto chislo e "<<max<<" a nai malkoto e "<<min<<endl; if (suwpadenie) cout<<x<<" se sreshta sred wuwedenite chisla \n"; else cout <<x<<" ne se sreshta sred wuwedenite chisla \n"; system("PAUSE"); return EXIT_SUCCESS; }За кода за максимални числа – да, позна. Ни и така, както си го направил сега, пак няма да работи – тествай :-)
Отрицателни стойности за N нямат смисъл. Но може да се въведе определена поредица от числа, при който кода за минимална стойност няма да работи вярно.
Да пак не работи, защото съм забравил отрицание пред maks в условния оператор.
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,suma,max,min,br,x,chislo; double proiz=1; cout<<"Wuwedete kolko chisla 6te wuwedete "; cin>>n; cout<<endl<<"Wuwedete chisloto za prowerka "; cin>>x; cout<<"Wuwedete chislata n"; bool suwpadenie=false,maks=false; suma=0; max=0; min=0; br=0; for (int i=1;i<=abs(n);i++) { cin>>chislo; suma+=chislo; proiz*=chislo; if (chislo>0) br+=1; if (chislo==x) suwpadenie=true; if (min==0) min=chislo; if (!maks) { max=chislo; maks=true; } if (chislo>max) max=chislo; if (chislo<min) min=chislo; } cout<<"Sumata na chislata e "<<suma<<endl; cout<<"Proizwedenieto na chislata e "<<proiz<<endl; cout<<"Broq na polojitelnite chisla e "<<br<<endl; cout<<"Nai-golqmoto chislo e "<<max<<" a nai malkoto e "<<min<<endl; if (suwpadenie) cout<<x<<" se sreshta sred wuwedenite chisla n"; else cout <<x<<" ne se sreshta sred wuwedenite chisla n"; system("PAUSE"); return EXIT_SUCCESS; }Сега съм съгласен. Остава да коригираш кода за минималното число.
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,suma,max,min,br,x,chislo; double proiz=1; cout<<"Wuwedete kolko chisla 6te wuwedete "; cin>>n; cout<<endl<<"Wuwedete chisloto za prowerka "; cin>>x; cout<<"Wuwedete chislata "; bool suwpadenie=false,maks=false,mintmp=false; suma=0; max=0; min=0; br=0; for (int i=1;i<=abs(n);i++) { cin>>chislo; suma+=chislo; proiz*=chislo; if (chislo>0) br+=1; if (chislo==x) suwpadenie=true; if (!maks) { max=chislo; maks=true; } if (!mintmp) { min=chislo; mintmp=true; } if (chislo>max) max=chislo; if (chislo<min) min=chislo; } cout<<"Sumata na chislata e "<<suma<<endl; cout<<"Proizwedenieto na chislata e "<<proiz<<endl; cout<<"Broq na polojitelnite chisla e "<<br<<endl; cout<<"Nai-golqmoto chislo e "<<max<<" a nai malkoto e "<<min<<endl; if (suwpadenie) cout<<x<<" se sreshta sred wuwedenite chisla n"; else cout <<x<<" ne se sreshta sred wuwedenite chisla n"; system("PAUSE"); return EXIT_SUCCESS; }Финалното решение (надявам се).