Cześć, mam do napisania program, który sumowałby elementy macierzy tzw. ślimakiem (zdj niżej), zaznaczę chodzi tu o macierze prostokątne. Program napisałem w 90%, ale problem okazał się z tym ślimakiem, ktoś poradziłby? Dodatkowo po wpisaniu danych i elementów program szaleje i też nie wiem do końca w czym problem.
#include<iostream>
#include<stdio.h>
#include<cstdlib>
#include<conio.h>
#include<iomanip>
#include <locale.h>
using namespace std;
void menu ()
{
cout<<endl<<endl;
cout<<" -------------"<<endl;
cout<<" | Menu główne |"<<endl;
cout<<" -------------"<<endl;
cout<<"1. Kalkulator. "<<endl;
cout<<"0. Wyłącz program."<<endl;
cout<<endl<<endl;
}
void rozmiar1(int &wi1, int &kol1)
{
cout<<"Wpisz liczbę kolumn oraz wierszy macierzy: "<<endl;
cout<<"Wiersze: ";
cin>>wi1;
cout<<"Kolumn: ";
cin>>kol1;
}
void def ()
{
system("cls");
cout<<"Nie ma takiej opcji w menu"<<endl;
}
void poczatek ()
{
cout<<" --------------------------------------------------------------------------"<<endl;
cout<<" | Program obliczajacy sume macierzy poprzez wybor elementow tzw. slimakiem |"<<endl;
cout<<" --------------------------------------------------------------------------"<<endl;
cout<<endl;
cout<<"Na początku proszę o wypisanie macierzy."<<endl;
cout<<endl;
}
void dane(float mac1[][10], int wi1, int kol1)
{
int i,j;
cout<<"Wpisz "<<wi1*kol1<<" Elementy macierzy: "<<endl;
for(i=0; i<wi1; i++)
for(j=0; j<kol1; j++)
{
cout << "Wpisz wartość elementu A" << i + 1 << j + 1 << " : ";
cin>>mac1[i][j];
}
}
void dodawanie(float mac11[][10], float macdod[][10], int wi1, int kol1)
{
int i, j;
system("cls");
{
{
cout<<"Powstała macierz to:"<<endl;
for(i=0; i<wi1; i++)
{
for(j=0; j<kol1; j++)
{
macdod[i][j] = mac11[i][j];
cout<<macdod[i][j]<<" ";
}
cout<<endl;
}
}
}
}
void zdane(int wi11, int kol11)
{
if(wi11==0 || kol11==0)
{
cout<<"Złe dane";
exit(0);
}
}
int main()
{
int wi1, kol1, wi2;
char wybor;
float mac1[10][10], macdod[10][10];
setlocale(LC_CTYPE, "Polish");
poczatek();
rozmiar1(wi1, kol1);
zdane(wi1, kol1);dane(mac1, wi1, kol1);
for(;;)
{
menu();
wybor=getch();
switch (wybor)
{
case '1':
dodawanie(mac1, macdod, wi1, kol1);
break;
case '2':
system("cls");
dane(mac1, wi1, kol1);
break;
case '0':
exit(0);
break;
default:
def();
}
}
return 0;
}