Gość
I'm redy
napisaæ program który wyliczy sumê liczb ca³kowitych z pliku wej¶ciowego zawieraj±cego macierz n x n. w sumie nalezy uwzglêdniæ tylko elementy diagonalne. sumê nalêy wypisaæ do pliku wyjsciowego z odpowiednim komentarzem
przyk³ad
-12 56 +9
-5 10 1
3 0 17
Offline
Gość
a diagonalne to przek±tna czy trójk±t poza przek±tn±
signed short
srednia1 (signed short a, signed short b){
return (a + b) / 2;
}
signed short&
srednia2 (signed short a, signed short b){
short c;
c = a;
c += b;
c /=2;
return c;
}
int
main() {
short a = 30000;
short b = -30000:
cout << "Srednia z (" << a << ") i (" <<b << ")";
cout << " wynosi " << srednia1(a, b);
cout << " albo " << srednia2(a, b);
return 0;
}
ZNAJD¬ I WYJA¦NIJ B£¡D
diagonalne to przek±tna
ZAD 3
short srednia(short tbl[], short rzmr) {
short s = 0;
while(rzmr-- >0) {
s += rzmr[tbl] / rzmr;
}
return s;
}
main () {
short tab[] = {1234, 2345, 3456, 4567, 5678, 6789};
cout << "Srednia wynosi " << srednia (tab,6) << endl;
return 0;
}
Po wykonaniu programu uzyskano nastêpuj±cy wydruk: Floating point exception
podaj wyja¶ninie dlaczego
Offline
Gość
tak jest poprawnie: porównaj:
signed short srednia1 (signed short a, signed short b){ //poprawi³em tak ¿eby by³o w jednej linii
return (a + b) / 2;
}
signed short srednia2 (signed short a, signed short b){ // tu usun±³em & i tez w jednej linii
short c;
c = a;
c += b;
c /=2;
return c;
}
int main() {
short a = 30000;
short b = -30000; // i tu by³ : zamiast ;
cout << "Srednia z (" << a << ") i (" << b << ")";
cout << " wynosi " << srednia1(a, b);
cout << " albo " << srednia2(a, b);
return 0;
} a jak wrzuci³em w kompilator to trzeba dopisaæ using namespace std; i to tyle:)
Gość
short srednia(short tbl[], short rzmr) {
short s = 0;
while(rzmr-- >0) { // petla nieskonczona
s += rzmr[tbl] / rzmr; //rzmr nie jest tablic± a tutaj jest wykorzystywany jako tablica B£¡D!!! rzmr jest tylko zwyk³ym shortem, nie tablic±
}
return s;
}
main () {
short tab[] = {1234, 2345, 3456, 4567, 5678, 6789};
cout << "Srednia wynosi " << srednia (tab,6) << endl;
return 0;
Gość
a ten program co wam zada³ jest tak spierdolony ze ten od nas najlepszy z grupy nie umie go zrobiæ
Gość
napisa³ ten algorytm do tego:) nie ma wczytywania danych bo to zajebiscie durzo jebania :
int main(void){
FILE *fp;
///....tu powinno byc wczystywanie danych z pliku do jakiejs tablicy no ale...
for(i=0; i<size_x_macierz; i++){
for(j=0; j<size_y_macierz; j++){
if (i==j) suma+= macierz[i][j];
}
}
fp = fopen('wynik.dat', 'wb');
fprintf(fp, '%d', suma);
fclose(fp);
}
Gość
#include <iostream>
#include <conio.h>
using namespace std;
int main(void){
const int a=100, b=100;
FILE *fp;
int size_x_macierz, size_y_macierz;
int i, j, suma, macierz[a][b];
///....tu powinno byc wczystywanie danych z pliku do jakiejs tablicy no ale...
for(i=0; i<size_x_macierz; i++){
for(j=0; j<size_y_macierz; j++){
if (i==j) suma+= macierz[i][j];
}
}
fp = fopen('wynik.dat', 'wb');
fprintf(fp, '%d', suma);
fclose(fp);
}
getch ();
return 0;
}
//wersja poprawiona;)