类型:转载 责任编辑:asp 日期:2007/03/01
题目:
有若干个学生的成绩(每个学生有4门课程),要求在用户输入学生序号以后,能输出该学生的全部成绩,用指针函数来实现。
程序:
#include "stdafx.h"
#include "stdio.h"
main()
{
float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
float *seach(float (*pointer)[4],int n);
float *p;
int i,m;
printf("enter the number of student:");
scanf("%d",&m);
printf("the scores of no.%d are:\n",m);
p=search(score,m);
for(i=0;i<4;i++)
printf("%5.2f\t",*(p+i));
}
float *search(float (*pointer)[4],int n)
{
float *pt;
pt=*(pointer+n);
return(pt);
}
compiling...
b.cpp
d:\program files\microsoft visual studio\myprojects\b\b.cpp(15) : error c2065: search : undeclared identifier
d:\program files\microsoft visual studio\myprojects\b\b.cpp(15) : error c2440: = : cannot convert from int to float *
conversion from integral type to pointer type requires reinterpret_cast, c-style cast or function-style cast
d:\program files\microsoft visual studio\myprojects\b\b.cpp(18) : warning c4508: main : function should return a value; void return type assumed
d:\program files\microsoft visual studio\myprojects\b\b.cpp(20) : error c2373: search : redefinition; different type modifiers
error executing cl.exe.
b.obj - 3 error(s), 1 warning(s)
推荐阅读
如果把 pt=*(pointer+n)
改为 pt=(*pointer+n);
pointer是一个pointer to pointer,搞清楚*pointer++和*(pointer++)的区别
pointer-->{60,70,80,90}
{56,89,67,88}
{34,78,90,66}
*pointer++==>pointer-->70
*(pointer++)==>pointer-->56