很急!哪位高手帮我把这段代码用指针改一下。先谢了!

liuxiang027 2006-11-22 09:43:10
代码我已经写好了。功能也能够实现。现在就是要用指针写。怎么改啊?请高手帮帮忙!很急!拜托了!

#include "leicong.h"

int GetNumber()
{
int nB=0;
printf("请输入班级号:");
scanf("%d",&nB);
return nB;
}


void search(int nStudent[CLASSNUMBER][STUDENTCOUNT],int nClassNumber)
{
for(int nIndex = 0; nIndex < STUDENTCOUNT; nIndex++)
{
int nSum = 0;
int nCount = 0;
int nA = 0;
int nNUM = 0;

printf("共有%d个学生,请输入查询号: ", nCount);
scanf("%d",&nNUM);
printf("%d\n",nStudent[nClassNumber][nNUM-1]);
do
{
printf("请选择类型:1 、总成绩 2、平均成绩 0、退出\n");
scanf("%d",&nA);

switch (nA)
{
case 1:
printf("总成绩%d\n ",nSum);
break;
case 2:
printf(" 平均成绩%d\n",nSum/nCount);
break;
case 0:
printf("退出 !\n");
break;

}
}while(nA != 0);
}
}

void Clear(int nStudent[CLASSNUMBER][STUDENTCOUNT],int nClassNumber)
{
for(int nIndex = 0; nIndex < STUDENTCOUNT; nIndex++)
{
nStudent[nClassNumber][nIndex] = 0;
}
}



void Interface(int nStudent[CLASSNUMBER][STUDENTCOUNT])
{


while(1)
{
system("cls");
printf(" ◇ 1、输入\n ◇ 2、输出\n ◇ 3、清空\n ◇ 4、退出\n ◇ 5、查询\n");
int nA=0;

printf("请输入ID:");
scanf("%d",&nA);


switch(nA)
{
case 1:
InputScore(nStudent,GetNumber());
break;
case 2:
OutputScore(nStudent,GetNumber());
system("pause");
break;
case 3:
Clear(nStudent,GetNumber());
break;
case 4:
return;
case 5:
search(nStudent,GetNumber());
break;
}
}
}
void OutputScore(int nArr[][STUDENTCOUNT],int nClassNumber)
{
if(nClassNumber < 0 || nClassNumber > 3)
{
return;
}
printf("output class %d\n",nClassNumber+1);
for(int nIndex = 0; nIndex < STUDENTCOUNT; nIndex++)
{
if((nIndex+1) % 10 == 0)
{
printf("\n");
}
if(-1 == nArr[nClassNumber][nIndex])
{
break;
}
printf("%d\n",nArr[nClassNumber][nIndex]);
}
}

void InputScore(int nArr[][STUDENTCOUNT],int nClassNumber)
{
if(nClassNumber < 0 || nClassNumber > 3)
{
return;
}

printf("input score:(-1stop)\n");


for(int nIndex = 0; nIndex < STUDENTCOUNT; nIndex++)
{
int nCount = 0;
printf("input %d: ",nIndex+1);
scanf("%d",&nArr[nClassNumber][nIndex]);
nCount = nIndex;
if(-1 == nArr[nClassNumber][nIndex])
{
break;
}



}

}

...全文
145 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
LiChenYue 2006-11-23
  • 打赏
  • 举报
回复
哇,程序太长了,改起来好累的!
蹭点分!
guileen 2006-11-23
  • 打赏
  • 举报
回复
楼主我支持你 ----------------- 松自萧萧云自飘 风中独酌亦逍遥 抚却凡愁与尘念 琴韵未解恨已销
laiwusheng 2006-11-23
  • 打赏
  • 举报
回复
我还以为是刘翔呢
HoBoss 2006-11-22
  • 打赏
  • 举报
回复
liuxiang027(Nail.柳翔) ( ) 信誉:100 Blog 2006-11-22 22:24:44 得分: 0


能不能用一个*号做啊
我们只学了一个*
没有学里面用**的~~
先谢了!

学了一个星就是学了二个星,一个是指针,二个就是指向指针的指针了
liuxiang027 2006-11-22
  • 打赏
  • 举报
回复
把头文件也帮我改一下啊
希望运行没有错误
liuxiang027 2006-11-22
  • 打赏
  • 举报
回复
能不能用一个*号做啊
我们只学了一个*
没有学里面用**的~~
先谢了!
jixingzhong 2006-11-22
  • 打赏
  • 举报
回复
那个怎么出现有两个*的啊?
=============
1 个就可以了 !!

比如:
void OutputScore(int nArr[][STUDENTCOUNT],int nClassNumber);
==》
void OutputScore(int *nArr[STUDENTCOUNT],int nClassNumber);

后面的第二维的长度 STUDENTCOUNT 必须要有的 !!
laiwusheng 2006-11-22
  • 打赏
  • 举报
回复
二维数组改为二级指针
liuxiang027 2006-11-22
  • 打赏
  • 举报
回复
那个怎么出现有两个*的啊?
liuxiang027 2006-11-22
  • 打赏
  • 举报
回复
这是这个头文件
怎么改?
liuxiang027 2006-11-22
  • 打赏
  • 举报
回复
ifndef __LEICONG_H__
#define __LEICONG_H__
#include <stdio.h>
#include <stdlib.h>
#define CLASSNUMBER (4)
#define STUDENTCOUNT (40)


void OutputScore(int nArr[][STUDENTCOUNT],int nClassNumber);
void InputScore (int nArr[][STUDENTCOUNT],int nClassNumber);
void Interface(int nStudent[CLASSNUMBER][STUDENTCOUNT]);
void Clear(int nStudent[CLASSNUMBER][STUDENTCOUNT],int nClassNumber);
void search(int nStudent[CLASSNUMBER][STUDENTCOUNT],int nClassNumber);

#endif
laiwusheng 2006-11-22
  • 打赏
  • 举报
回复
//#include "leicong.h"//这个文件里的相关参数也得改
#include <stdio.h>
#include <stdlib.h>

int GetNumber()
{
int nB=0;
printf("请输入班级号:");
scanf("%d",&nB);
return nB;
}


//void search(int nStudent[CLASSNUMBER][STUDENTCOUNT],int nClassNumber)
void search(int **nStudent,int nClassNumber)
{
for(int nIndex = 0; nIndex < STUDENTCOUNT; nIndex++)
{
int nSum = 0;
int nCount = 0;
int nA = 0;
int nNUM = 0;

printf("共有%d个学生,请输入查询号: ", nCount);
scanf("%d",&nNUM);
printf("%d\n",*(*(nStudent+nClassNumber)+nNUM-1));
do
{
printf("请选择类型:1 、总成绩 2、平均成绩 0、退出\n");
scanf("%d",&nA);

switch (nA)
{
case 1:
printf("总成绩%d\n ",nSum);
break;
case 2:
printf(" 平均成绩%d\n",nSum/nCount);
break;
case 0:
printf("退出 !\n");
break;

}
}while(nA != 0);
}
}

//void Clear(int nStudent[CLASSNUMBER][STUDENTCOUNT],int nClassNumber)
void Clear(int **nStudent,int nClassNumber)
{
for(int nIndex = 0; nIndex < STUDENTCOUNT; nIndex++)
{
*(*(nStudent+nClassNumber)+nIndex) = 0;
}
}



//void Interface(int nStudent[CLASSNUMBER][STUDENTCOUNT])
void Interface(int **nStudent)
{


while(1)
{
system("cls");
printf(" ◇ 1、输入\n ◇ 2、输出\n ◇ 3、清空\n ◇ 4、退出\n ◇ 5、查询\n");
int nA=0;

printf("请输入ID:");
scanf("%d",&nA);


switch(nA)
{
case 1:
InputScore(nStudent,GetNumber());
break;
case 2:
OutputScore(nStudent,GetNumber());
system("pause");
break;
case 3:
Clear(nStudent,GetNumber());
break;
case 4:
return;
case 5:
search(nStudent,GetNumber());
break;
}
}
}
//void OutputScore(int nArr[][STUDENTCOUNT],int nClassNumber)
void OutputScore(int **nArr,int nClassNumber)
{
if(nClassNumber < 0 || nClassNumber > 3)
{
return;
}
printf("output class %d\n",nClassNumber+1);
for(int nIndex = 0; nIndex < STUDENTCOUNT; nIndex++)
{
if((nIndex+1) % 10 == 0)
{
printf("\n");
}
if(-1 == *(*(nArr+nClassNumber)+nIndex))
{
break;
}
printf("%d\n",*(*(nArr+nClassNumber)+nIndex));
}
}

//void InputScore(int nArr[][STUDENTCOUNT],int nClassNumber)
void InputScore(int **nArr,int nClassNumber)
{
if(nClassNumber < 0 || nClassNumber > 3)
{
return;
}

printf("input score:(-1stop)\n");


for(int nIndex = 0; nIndex < STUDENTCOUNT; nIndex++)
{
int nCount = 0;
printf("input %d: ",nIndex+1);
scanf("%d",*(nArr+nClassNumber)+nIndex);
nCount = nIndex;
if(-1 == *(*(nArr+nClassNumber)+nIndex))
{
break;
}



}

}

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧