Fişierul text date.in conţine pe prima linie un număr natural nenul n (n≤100), iar pe a doua linie un şir de n numere naturale nenule distincte, separate prin câte un spaţiu, fiecare număr având maximum 8 cifre.
a) Scrieţi un program C/C++ care citeşte numerele din fişier şi determină câte dintre comopnentele şirului citit pot fi scrise ca sumă a altor două numere din acelaşi şir. Rezultatul obţinut se va afişa pe ecran. În cazul în care nu există niciun astfel de element, se va afişa valoarea 0.
Exemplu: dacă fişierul date.in conţine 6
1 10 25 2 15 3
atunci se va afişa valoarea 2 (deoarece 25=10+15, 3=1+2).
În C++ vă rog
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include <iostream>
#include <fstream>
int main()
{
std::ifstream f1;
int n, v[100], i, j, k, num = 0, ok;
f1.open("date.in");
f1 >> n;
for (i = 0; i < n; i++)
f1 >> v[i];
f1.close();
for (i = 0; i < n; i++)
{
ok = 0;
for (j = 0; j < n; j++)
{
for (k = j + 1; k < n - 1; k++)
{
if (v[i] == v[j] + v[k])
ok = 1;
}
}
if (ok == 1)
num++;
}
std::cout << num << std::endl;
return 0;
}
Explicație:
Posibil sa nu fie cel mai optimizat cod pe care l-ai vazut vreodata, dar face ce ai cerut sa faca. Daca mai ai vreo intrebare, nu ezita sa mi-o adresezi.
Alte întrebări interesante
Istorie,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Informatică,
9 ani în urmă
Limba română,
9 ani în urmă