64,649
社区成员
发帖
与我相关
我的任务
分享
typedef struct tagStudent
{
int nID;
int nWanna[2];
int nFinalID;
tagStudent * pFlink;
tagStudent * pBlink;
}STUDENT,*PSTUDENT;
int GetData(PSTUDENT pStudent)
{
FILE *fp;
int nAmount;
fp = fopen("1.in","r");
fscanf(fp,"%d\n",&nAmount);
pStudent = (PSTUDENT)malloc(sizeof(STUDENT)*nAmount);
for(int i=0;i<nAmount;i++)
{
pStudent[i].nID = i+1;//问题在这里,error C2065: “pStudent”: 未声明的标识符
fscanf(fp,"%d %d\n",&pStudent[i].nWanna[0],pStudent[i].nWanna[1]);
}
fclose(fp);
return nAmount;
}
#include<stdio.h>
#include<stdlib.h>
typedef struct tagStudent
{
int nID;
int nWanna[2];
int nFinalID;
tagStudent * pFlink;
tagStudent * pBlink;
}STUDENT,*PSTUDENT;
int GetData(PSTUDENT pStudent)
{
FILE *fp;
int nAmount;
fp = fopen("1.in","r");
fscanf(fp,"%d\n",&nAmount);
pStudent = (PSTUDENT)malloc(sizeof(STUDENT)*nAmount);
for(int i=0;i<nAmount;i++)
{
pStudent[i].nID = i+1;//问题在这里,error C2065: “pStudent”: 未声明的标识符
fscanf(fp,"%d %d\n",&pStudent[i].nWanna[0],pStudent[i].nWanna[1]);
}
fclose(fp);
return nAmount;
}
int main() //我稍微用个 main函数给你测试了一下,没有语法错误!你再去试一下,要是还有什么问题,再贴出来,我看看!
{
tagStudent a;
GetData(&a);
return 0;
}
typedef struct tagStudent
{
int nID;
int nWanna[2];
int nFinalID;
struct tagStudent * pFlink;
struct tagStudent * pBlink;
}STUDENT,*PSTUDENT;
typedef struct tagStudent
{
int nID;
int nWanna[2];
int nFinalID;
tagStudent * pFlink;
tagStudent * pBlink;
}STUDENT,*PSTUDENT;
int GetData(PSTUDENT pStudent) //要么改成指针的形式!
{
FILE *fp;
int nAmount;
fp = fopen("1.in","r");
fscanf(fp,"%d\n",&nAmount);
pStudent = (PSTUDENT)malloc(sizeof(STUDENT)*nAmount); // 分配内存,用来存放数据!并不是定义一个数组对象!
for(int i=0;i<nAmount;i++)
{
pStudent[i].nID = i+1;// 不是指针如何得出数组对象?前面的只是给pStudent分配了内存大小,用来存放数据!
fscanf(fp,"%d %d\n",&pStudent[i].nWanna[0],pStudent[i].nWanna[1]);
}
fclose(fp);
return nAmount;
}
int GetFinal(PSTUDENT & pStudnet,int nAmount)
{
int i=0;
for(int nTimes=0;nTimes<nAmount;nTimes++)
{
if(CheckWanna(
pStudnet,
pStudnet[i].nWanna[0],
i+1 ))
{
Link(pStudnet,pStudnet[i].nWanna[0]-1,i);
i = pStudnet[i].nWanna[0];
pStudnet[i].nWanna[0] = 0;
}else
if(CheckWanna(
pStudnet,
pStudnet[i].nWanna[1],
i+1 ))
{
Link(pStudnet,pStudnet[i].nWanna[1]-1,i);
i = pStudnet[i].nWanna[1];
pStudnet[i].nWanna[1] = 0;
}else
return 0;
}
PSTUDENT pStudentNow = pStudent;//这里报错未声明的标识符
for(int nTimes=0;nTimes<nAmount;nTimes++)
{
pStudentNow->nFinalID = nTimes+1;
pStudentNow = pStudentNow->pFlink;
}
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
PSTUDENT pStudnet;
int nAmount = GetData(pStudent);//这里报错
if(!GetFinal(pStudent,nAmount))//这里报错
{
printf("-1");
return 0;
}
system("pause");
return 0;
}
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
typedef struct tagStudent
{
int nID;
int nWanna[2];
int nFinalID;
tagStudent * pFlink;
tagStudent * pBlink;
}STUDENT,*PSTUDENT;
int GetData(PSTUDENT &pStudent) //
{
FILE *fp;
int nAmount;
fp = fopen("1.in","r");
fscanf(fp,"%d\n",&nAmount);
pStudent = (PSTUDENT)malloc(sizeof(STUDENT)*nAmount);
for(int i=0;i<nAmount;i++)
{
pStudent[i].nID = i+1;//问题在这里,error C2065: “pStudent”: 未声明的标识符
fscanf(fp,"%d %d\n",&pStudent[i].nWanna[0],&pStudent[i].nWanna[1]); //
}
fclose(fp);
return nAmount;
}
int main()
{
PSTUDENT p_stu;
GetData(p_stu);
return 0;
}
PSTUDENT pStudentNow = &(*pStudent[0]);//这里有pStudent报错
for(int nTimes=0;nTimes<nAmount;nTimes++)
{
pStudentNow->nFinalID = nTimes+1;
pStudentNow = pStudentNow->pFlink;
}
PSTUDENT * pStudnet;
int nAmount = GetData(pStudent);//这里有报错
if(!GetFinal(pStudent,nAmount))//这里也有报错
{
printf("-1");
return 0;
}