-
ببخشید دوستان، یه ارایه دو بعدی دارم که به صورت پویا ایجاد شده .می خوام هر بار یک سطر از این ارایه رو پاس بدم به یه تابع تا با یه ارایه دیگه مقایسه بشه و تعداد عناصر مشترکش محاسبه شه اما برای تعریف تابع مشکل دارم نمی دونم در خط اول تعریف تابع چی بنویسم.
این کدیه که نوشتم اما خطا داره
کد:
int check(int A[i][n],a[])
{
int msk=0;
for(j=0;j<=n;j++)
{ for(int k=1;k<=aSize;k++)
{
int flag=0;
if(A[i][j]==a[k])
{
msk++
flag=1;
}
if(flag==1)break;
}
}
return msk;
}
-
1- i و n رو قبلا تعریف کردی؟؟؟
2- قبل a[] باید یه نوع داده ای بذاری!(تو سطر اول تعریف تابع)
-
-
خوب متن ارور رو بذار تا بگم چشه:31:
-
پیشی جونم شما دوباره کی میای سایت که من چند تا تابع دیگه بنویسم بعد کل خطاهاشو ازتون بپرسم؟ ببخشید که خواست زیادیه.
-
من هر دو ساعت یه سر میزنم!:31:
خواهش میشه!:11:
-
پس من برنامه مو کامل میکنم بعد اگه شما کمک کنی ایراداشو رفع کنم ممنون میشم
-
پیشی جونم تابع های برنامه مو دستی نوشتم اما تو کد همین دو سه تای اول کلی خطا داره. اصلا نمی دونم چطوری باید یه سطر از یه ماتریس رو به یه تابع رد کنم. این برنامه است :
کد:
#include"stdafx.h"
#include"test2.h"
#include"conio.h"
#include<string>
#include<list>
usingnamespace std;
int n;
void costCalculate(int [][n], int [],int []);
int Check(int [][n],int []);
int Count(int [][n]);
int count(int []);
int main ()
{
double *Cost;
int ** setMat;
int graphNumber,**adjMatrix;
string mystring ;
int c,sum,x,j=1,count=0,i,edge,k,l,z,p,element1,element2,n,a[100]={0};
///////////////گرفتن رشته از ورودی
cin>>mystring;
cout << mystring;
c=mystring.length();
cout<<c;
//////////////////تبدیل رشته ورودی به ارایه ای از اعداد
for(int i=0;i<c;i++)
{
if(mystring.at(i)!=',')
sum=0;
while(mystring.length()!=i && mystring.at(i)!=',')
{
x=mystring.at(i)-48;
sum=sum*10+x;
i++;
}
count++;
a[j++]=sum;
}
///////////////////
///////////////////ایجاد و گرفتن مقادیر ماتریس
cout<<"enter the number of node graph :";
cin>>graphNumber;
adjMatrix=newint*[graphNumber];
for(i=1;i<=graphNumber;i++)
adjMatrix[i]=newint[graphNumber];
for(i=1;i<=graphNumber;i++)
{
for(j=1;j<=graphNumber;j++)
{
if(i==j)adjMatrix[i][j]=0;
else
{
cout<<" If edge ("<<i<<","<<j<<")is in the graph, enter 1 else type 0:"<<"\n";
cin>>edge;
adjMatrix[i][j]=edge;
}//end else
}//end for
}
//////////////////
Cost= newdouble[count];//ارایه ای جهت نگه داری هزینه هر سطر از ماتریس
////////////////
setMat=newint*[count];
for( i=1;i<=count;i++)
setMat[i]=newint[graphNumber];
/////////////////ایجاد ارایۀ setMat
for(k=1;k<=count;k++)
{
z=2;
setMat[k][1]=a[k];
for(j=2;j<=graphNumber+1;j++)
{
l=j-1;
if(adjMatrix[a[k]][l]==1)
{setMat[k][j]=l;z++;}
}
}
/////////////////مقدار دهی ارایه Cost
for(int s=1;s<=count;s++)
{
costCalculate(setMat[s][graphNumber],a,Cost);
}
getch();
return 0;
}
//---------------------------
int Check(int A[i][n],int a[])
{
int flag=0,mst=0;
for(int j=1;j<=n;j++)
{
for(int k=1;k<=count(a);k++)
{flag=0;
if(A[i][j]==a[k])
{
mst++;
flag=1;
}
if(flag==1)break;
}
}
return mst;
}
///-------
void costCalculate(int A[i][n],int a[],int c[])
{
int element1,element2;
element1= Check(A[i][n],a);
element2=Count(A[i][n]);
c[i]=element1/element2;
}
///-------
int count(int x[])
{
int i=1,c=0;
while(x[i]!=0)
c++;
return c;
}
//-------
int Count(A[i][n])
{
int c=0;
for(j=1;j<=n;j++)
{
if(A[i][j]!=0)
c++;
}
return c;
}
اینم لیست خطاهاش
-
-
سلام دوستان من ميخوام يه ماتريس بزرك رو در خروجي جاب كنم ولي c++محدوده در نمايش افقي , ميخوام بدونم ميشه اسكرول افقي اضافه كنم بهش؟ لطفأ راهنمايي كنيد
ممنون