PDA

View Full Version : سوال: ارور در case



vB.N3T
یک شنبه 26 دی 1389, 01:28 صبح
سلام بچه ها :قلب:
دوستان اگه ممکنه یه نگاه به کد من بکنید
هر مشکلی هست از case 9 و power 9 هست ممنون میشم کمک کنید پیشاپیش ممنون :قلب:


#include<iostream.h>
#include<conio.h>

int m[10][12];
int b[10];
int power9 (char kala,char mah,int a)
{
int j;
j=m[kala][mah]=a;
return j;
}

//_________________________________________________
void power8()
{int i,j;
for (i=1;i<10;i++)
for (j=1;j<=12;j++)
cout<<m[i][j]<<",";
}
//_________________________________________________
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 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 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;
char name[20];
char lastname[20];

cout<<"Plase Enter( 1 To 9 )\n";
cout<<"______________________________\n";
cout<<"Enter Number:";
do{
cin>>n;
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";
break;
//_________________________________________________
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:";
break;
//_________________________________________________
case 3:
cout<<"shomare kala ra vard konid:";
cin>>a;
power3 (a);
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter Number";
break;
//_________________________________________________
case 4:
cout<<"shomare mah ra vard konid:";
cin>>a;
power4 (a);
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 5:
power5();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 6:
power6();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 7:
power7();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 8:
power8();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;


case 9:
cout<<"lotfan nam ra vard konid:";
cin>>name;
cout<<"lotfan nam khanvadgi ra vard konid:";
cin>>lastname;
cout<<"lotfan shomare zviyat ra vard konid:";
cin>>a;
j=power9(name,lastname,a);
cout<<"in nam "<<j<<" sabt shood\n";
cout<<"______________________________";
cout<<"\n";
cout<<"Enter number";
}

}while(n<10);


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

wanted_boy_2010
یک شنبه 26 دی 1389, 10:46 صبح
سلام دوست عزیز. اگه اشتباه نکنم توی case 9 اومدی نام و نام خانوادگی رو گرفتی و به تابع power9 ارسال کردی. اما تابع power9 که برای کالا و ماه کار می کنه. اگه بیشتر توضیح بدی ممنون میشم.:لبخند:

vB.N3T
یک شنبه 26 دی 1389, 13:58 عصر
فرقی نمیکنه من میخوام یه نام و نام خانوادگی و یه شماره عضویت بگیره و اونو به عنوان یه یوزر یا هر چیز دیگه ای ثبت کنه

vB.N3T
سه شنبه 28 دی 1389, 21:12 عصر
دوستان میشه به مشکل من هم رسیدگی کنید.... من میخوام تو این برنامه یه اسم بگیره و فامیل و یه شماره عضویت و ثبت کنه ممنون میشم

sh4mid
سه شنبه 28 دی 1389, 23:22 عصر
سلام
تو تعریف power9 داری



int power9 (char kala,char mah,int a)
{
int j;
j=m[kala][mah]=a;
return j;
}


این تابع دو تا char میگیره با یک عدد و مقدار اون عدد رو در آرایه m می ریزه ، که index هاش kala و mah که از نوع char تعریف شده اند .تو ++C فرق زیادی بین char و int نیست و اینجا می تونستی تو index های آرایه ات به جای int از char استفاده کنی ، اما این دفعه می خواهی که index هات از نوع char* باشه همین * کار رو خراب میکنه :قهقهه: ، نمی تونی به طور معمول از آرایه هایی استفاده کنی که index اونها عددی نباشه
خوب چاره چیست؟ :متفکر:
به چند مدل میشه این مشکل رو حل کرد
1- سه تا آرایه داشته باشی که با یک index به هم مرتبط باشند (راحت ترین راه :قهقهه:)، این جوری تابع power9 این شکلی میشه




const int MAX_LEN=10;
string names[MAX_LEN];
string families[MAX_LEN];
int ids[MAX_LEN];

int power9 (string name,string family,int id)
{
static int i;
int retval=-1;
if(i<MAX_LEN-1)
{
//Check if Data Already Exist
//sth like this
//if(!exists(name,family,id))
//{
// names[i]=name;
// families[i]=family; ADD DATA
// ids[i]=id;
// i++;
//}
//else
//{
// namid=findID(namer,family); UPDATE DATA
// ids[namid]=id;
//}

names[i]=name;
families[i]=family;
ids[i]=id;
i++;
retval=id;
}

return id;
}


2- یک آرایه از رکورد ها درست کنی (مثل بالا) .....

3- از map (http://en.wikipedia.org/wiki/Map_(C%2B%2B))استفاده کنی که کدت تقریبا این جوری میشه




typedef struct tagPerson
{
string strName;
string strFamily;
} Person;

bool operator !=(const Person& left,const Person& right)
{
return ((left.strName!=right.strName) && (left.strFamily !=right.strFamily));
}
int operator < (const Person& left,const Person& right)
{
int i=0;
if(left!=right)
{
i=left.strFamily.compare(right.strFamily);
if(i==0)
{
i=left.strName.compare(right.strName);
}
}
return i;
}

typedef map<Person,int> PersonelID;

int power9_new1(string name,string family,int personID)
{
int i=personID;
Person person={name,family};
try
{

personelID.insert(std::make_pair(person,personID)) ; //sth like this personelID[person]=personID;

}
catch(std::exception e)
{
cerr<<e.what()<<endl;
i=-1;
}

return i;


انتخاب کن :قهقهه:

vB.N3T
چهارشنبه 29 دی 1389, 00:19 صبح
عزیز من اینارو هم زدم باز مشکل دارم اگه زحمتی نیست به برنامه اضافه کن زمینه کن ممنون میشم

vB.N3T
چهارشنبه 29 دی 1389, 12:57 عصر
دوست عزیز کد رو به این صورت تغیر دادم به string ها گیر میده میشه برسی کنید



#include<iostream.h>
#include<conio.h>
int m[10][12];
int b[10];
const int max_len=10;
string names[max_len];
string families[max_len];
int ids[max_len];
int power9 (string name,string family,int id)
{
static int i;
int retval=-1;
if(i<MAX_LEN-1)
{
// Check if Data Already Exist
// sth like this
// if(!exists(name,family,id))
// {
// names[i]=name;
// families[i]=family; ADD DATA
// ids[i]=id;
// i++;
// }
// else
// {
// namid=findID(namer,family); UPDATE DATA
// ids[namid]=id;
// }

names[i]=name;
families[i]=family;
ids[i]=id;
i++;
retval=id;
}

return id;
}

//_________________________________________________
void power8()
{int i,j;
for (i=1;i<10;i++)
for (j=1;j<=12;j++)
cout<<m[i][j]<<",";
}
//_________________________________________________
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]<<".";}
}
//_________________________________________________
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 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 Book ="<<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;
char name[20];
char lastname[20];

cout<<"Plase Enter( 1 To 9 )\n";
cout<<"______________________________\n";
cout<<"Enter Number:";
do{
cin>>n;
switch (n){
//_________________________________________________
case 1:
cout<<"shomare book 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";
break;
//_________________________________________________
case 2:
cout<<"shomare Book ra vard konid:";
cin>>a;
cout<<"shomare mah ra vard konid :";
cin>>b;
j=power2 (a,b);
cout<<"Mizan foroshIn Bok dar in mah="<<j;
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number:";
break;
//_________________________________________________
case 3:
cout<<"shomare Book ra vard konid:";
cin>>a;
power3 (a);
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter Number";
break;
//_________________________________________________
case 4:
cout<<"shomare mah ra vard konid:";
cin>>a;
power4 (a);
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 5:
power5();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 6:
power6();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 7:
power7();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 8:
power8();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;


case 9:
cout<<"lotfan nam ra vard konid:";
cin>>name;
cout<<"lotfan nam khanvadgi ra vard konid:";
cin>>lastname;
cout<<"lotfan shomare zviyat ra vard konid:";
cin>>a;
j=power9(name,lastname,a);
cout<<"in nam "<<j<<" sabt shood\n";
cout<<"______________________________";
cout<<"\n";
cout<<"Enter number";
}

}while(n<10);


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

sh4mid
چهارشنبه 29 دی 1389, 22:28 عصر
به string ها گیر میده
اگر ان شاالله compiler مورد استفاده شما ، سرش به تنش بیارزد باید از کد زیر استفاده کنید(خواهشا نگید دارید از Turbo C استفاده می کنید :قهقهه:)




#include <string>

using namespace std;

vB.N3T
پنج شنبه 30 دی 1389, 01:11 صبح
نه از Tc شما اضافه کردید مشکل نداشت ؟ ؟

sh4mid
جمعه 01 بهمن 1389, 11:43 صبح
خوب بهتره که از TC استفاده نکنی ولی علی الحساب :قهقهه:




#include<iostream.h>
#include<conio.h>
#include <strng.h>
int m[10][12];
int b[10];
const int MAX_LEN=10;
String names[MAX_LEN];
String families[MAX_LEN];
int ids[MAX_LEN];
int power9 (String name,String family,int id)
{
static int i;
int retval=-1;
if(i<MAX_LEN-1)
{
// Check if Data Already Exist
// sth like this
// if(!exists(name,family,id))
// {
// names[i]=name;
// families[i]=family; ADD DATA
// ids[i]=id;
// i++;
// }
// else
// {
// namid=findID(namer,family); UPDATE DATA
// ids[namid]=id;
// }

names[i]=name;
families[i]=family;
ids[i]=id;
i++;
retval=id;
}

return id;
}

//_________________________________________________
void power8()
{int i,j;
for (i=1;i<10;i++)
for (j=1;j<=12;j++)
cout<<m[i][j]<<",";
}
//_________________________________________________
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]<<".";}
}
//_________________________________________________
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 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 Book ="<<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;
char name[20];
char lastname[20];

cout<<"Plase Enter( 1 To 9 )\n";
cout<<"______________________________\n";
cout<<"Enter Number:";
do{
cin>>n;
switch (n){
//_________________________________________________
case 1:
cout<<"shomare book 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";
break;
//_________________________________________________
case 2:
cout<<"shomare Book ra vard konid:";
cin>>a;
cout<<"shomare mah ra vard konid :";
cin>>b;
j=power2 (a,b);
cout<<"Mizan foroshIn Bok dar in mah="<<j;
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number:";
break;
//_________________________________________________
case 3:
cout<<"shomare Book ra vard konid:";
cin>>a;
power3 (a);
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter Number";
break;
//_________________________________________________
case 4:
cout<<"shomare mah ra vard konid:";
cin>>a;
power4 (a);
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 5:
power5();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 6:
power6();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 7:
power7();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;
//_________________________________________________
case 8:
power8();
cout<<"\n";
cout<<"______________________________\n";
cout<<"Enter number";
break;


case 9:
cout<<"lotfan nam ra vard konid:";
cin>>name;
cout<<"lotfan nam khanvadgi ra vard konid:";
cin>>lastname;
cout<<"lotfan shomare zviyat ra vard konid:";
cin>>a;
j=power9(name,lastname,a);
cout<<"in nam "<<j<<" sabt shood\n";
cout<<"______________________________";
cout<<"\n";
cout<<"Enter number";
}

}while(n<10);


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

Salar Ashgi
جمعه 01 بهمن 1389, 22:27 عصر
اولین مشکل در فراخوانی تابع power9 هست که اونطور که از signature تابع برداشت میشه ، دو تا char میگیره با یه دونه int ؛
حال شما در موقع فراخوانی بجای کاراکتر ، یه آرایه بهش پاس دادید !!