PDA

View Full Version : سوال: دلیل رخ دادن خطا هنگام استفاده از while



vB.N3T
جمعه 12 آذر 1389, 20:49 عصر
سلام دوستان به کد من یه نگاه بندازید وقتی do{ رو میزاریم بیرون switch برنامه خطا میده
ممنون میشم درستش کنید

Felony
جمعه 12 آذر 1389, 21:16 عصر
#include<iostream.h>
#include<conio.h>
int m[10][12];
int b[10];

void power6()
{int maxitm=m[0][0];
int i,j;
int maxrow=0;
int maxcol=0;
for ( i=0;i<10;i++)
for (j=0;j<12;j++)
if (m[i][j]>maxitm)

{
maxitm=m[i][j];
maxrow=i;
maxcol=j;
}
cout<<"Por Forosh Tarin mah ="<<maxcol<<endl;
}
void power7 ()
// {float max=0;
//int i,j;
// for (i=1;i<=12;i++) {
//for (j=1;j<10;j++)
// max=max+m[j][i];
// max=max/10;
// b[j]=max;
// cout<<b[10]<<".";}
{ float sum=0;
int i,j;
for (j=0;j<10;j++)
b[j]=0;
for (i=0;i<12;i++)
for (j=0;j<10;j++)
b[j]+=m[j][i];
for (j=0;j<10;j++)
b[j]/=10;
for (j=0;j<10;j++)
cout<<b[j]<<",";
}
void power8()
{int i,j;
for (i=1;i<10;i++)
for (j=1;j<=12;j++)
cout<<m[i][j]<<",";
}
void power5 ()
{int maxitm=m[0][0];
int i,j;
int maxrow=0;
int maxcol=0;
for ( i=0;i<10;i++)
for (j=0;j<12;j++)
if (m[i][j]>maxitm)

{
maxitm=m[i][j];
maxrow=i;
maxcol=j;
}
cout<<"Por Forosh Tarin Kala ="<<maxrow<<endl;
}
void power4(int mah)
{int i;

for (i=1;i<=10;i++)
cout<<m[i][mah]<<"\t";
}
void power3 (int kala)
{int i;
for (i=1;i<=12;i++)
cout<<m[kala][i]<<"\t";
}
int power2 (int kala,int mah)
{
int j;
j=m[kala][mah];
return j;}

int power1 (int kala,int mah,int c)
{
int j;
j=m[kala][mah]=c;
return j;}

int main (){

int a,b,n,c,i,j;

cout<<"Plase Enter( 1 To 9 )\n";
cout<<"______________________________";
cout<<"\n";
cout<<"Enter Number:";

cin>>n;
if (n>9)
cout<<"Plase Enter( 1 To 9 )\a\n";
cout<<"______________________________";
cout<<"\n";
cin>>n;
do{
switch (n){

case 1:
cout<<"shomare kala ra vard konid:";
cin>>a;
cout<<"shomare mah ra vard konid:";
cin>>b;
cout<<"Gheymat ra vard konid :";
cin>>c;
j=power1(a,b,c);
cout<<"gheymat "<<j<<" sabt shood\n";
cout<<"______________________________";
cout<<"\n";
cout<<"Enter number";
cin>>n;


case 2:
cout<<"shomare kala ra vard konid:";
cin>>a;
cout<<"shomare mah ra vard konid :";
cin>>b;
j=power2 (a,b);
cout<<"Mizan forosh dar in mah="<<j;
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number:";
cin>>n;
case 3:
cout<<"shomare kala ra vard konid:";
cin>>a;
power3 (a);
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter Number";
cin>>n;
case 4:
cout<<"shomare mah ra vard konid:";
cin>>a;
power4 (a);

cout<<"______________________________\n";
cout<<"Enter number";
cin>>n;
case 5:
power5();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
cin>>n;
case 6:
power6();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
cin>>n;

case 7:
power7();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
cin>>n;
case 8:
power8();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
cin>>n;
}
}while (n<=8);





getch();
clrscr ();
return 0;
}

sh4mid
جمعه 12 آذر 1389, 21:22 عصر
کد شما


}while (n<=8);}
کد درست


}}while (n<=8);

در ضمن دوباره حدود آرایه را در توابع تان رعایت نکرده اید، power3،power4 و power8.
آخر هر case باید break بگزارید




cout<<"Enter number";
cin>>n;
break;


case 2:
cout<<"shomare kala ra vard konid:";


روشتان برای ایجاد menu زیاد جالب نیست ، دوباره به برنامه ای که برایتان گذاشتم نگاهی بیاندازید
موفق باشید