Program ma wykonać działanie w zależności od numeru zadania.
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
char r;
while(cin>>r)
{
switch(r)
{
case '1':
int tablica[100],n;
cin>>n;
for(int i=0; i<n; i++)
{
cin>>tablica[i];
}
for (int i=0; i<n-1; i++)
for (int j=0; j<n-1; j++)
if (tablica[j]<tablica[j+1])
swap(tablica[j], tablica[j+1]);
for (int i = 0; i<n; i++)
cout << tablica[i]<<" ";
break;
//////////////////////////////////////////////////////////////////////////////////////////////////////////
case '7':
float a,b,c,d;
float x1,x2,x,cztery,zero;
cin>>cztery>>zero>>a>>b>>c;
d=(b*b)-(4*a*c);
if(d>0)
{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
if(x1>x2)
{
cout<<floor(x2)<<" "<<floor(x1)<<endl;
}
if(x2>x1)
{
cout<<floor(x1)<<" "<<floor(x2)<<endl;
}
}
if(d==0)
{
x=-b/(2*a);
cout<<x<<endl;
}
break;
////////////////////////////////////////////////////////////////////////////////////////////////////////////
case '4':
int tab[100],temp,i,j;
cin>>n;
for(i=0;i<n;i++)
{
cin>>tab[i];
}
for(i=0,j=n-1;i<n/2;i++,j--)
{
temp=tab[i];
tab[i]=tab[j];
tab[j]=temp;
}
for(i=0;i<n;i++)
cout<<tab[i]<<" ";
break;
}
}
return 0;
}
Program działa ale na stronie gdzie mam go wrzucić wyrzuca mi coś takiego:
main0.cpp(93,16): warning C4456: declaration of 'i' hides previous local declaration
main0.cpp(63,24): note: see declaration of 'i'
main0.cpp(96,21): warning C4456: declaration of 'i' hides previous local declaration
main0.cpp(93,13): note: see declaration of 'i'
Podejrzewam że, nadpisuje wartość "i". Moje pytanie jest takie: Jak zrobić żeby każdy podprogram miał swoje własne wartości typu "i","n","j" które można by było zapisywać na początku każdego z podprogramów jako int/float i,n,j;
Przykładowe dane wejściowe i funkcja podprogramu:
zad1 Posortuj wejściowy ciąg liczb 1 5 7 9 3 8 1
zad4 Zapisz podany wejściowy ciąg liczbowy w tablicy i odwróć go w miejscu 4 4 3 6 8 9
zad7 Rozwiąż równanie kwadratowe 7 4 0 6 10 1