一道C语言的题目。

一道C语言的题目。,第1张

main()

{

float

score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}

float

*search(float(*pointf[4]))

/*改为float

*search(float(*pointf)[4])不然为指针数组*/

float

*p

int

i,j

for(i=0i<3i++)

{

p=search(score+i)

if(p==*(score+i))

{

printf("nember:

%d

",i)

for(j=0j<4j++)

printf("%5.2f

",*(p+j))

printf("\n")}

}

}

float

*search(float(*pointf)[4])

{

int

i

float

*pt

pt=*(pointf+1)

for(i=0i<4i++)

if(*(*pointf+i)<60)

pt=*pointf

return(pt)

}

以上修改后可以运行,输出结果为:

number

:

1

56.00

89.00

67.00

88.00

number:

2

34.00

78.00

90.00

66.00

输出结果正确

至于您所说的

2.if(*(*pointf+i)<60)

,里面的*(*pointf+i)代表的是什么意思

pointf为指向含有4个元素的一维数组的指针变量,*pointf就是某行的首列地址,*pointf+i为某行第i列的元素地址,则*(*pointf+i)就是某行第i列的元素值,判断其是否小于60.

3.*(pointf+1)

是指向数组pointf

中第一行的数吗?

如果是

照题目成立的话就是point

+2也就是第二行数据

对吗?

答:应该不是吧,pointf是子函数中的一个指向一维数组的指针变量,不是数组,它接收主函数中传递过来的实参,如果实参是score+0则子函数中*(pointf+1)指向score数组的第一行首元素,为列指针,其值为&score[1][0],pointf+1指向score数组第一行,是行指针,而当实参是score+1时,则*(pointf+1)指向score数组的第二行首元素,pointf+1就指向score数组第二行

所以说具体它指向第几行的首元素,要看实参传递过来的值为什么地址了。

希望能够帮到您。

#include "stdio.h"

int main(int argc,char *argv[]){

char ch

int uc,lc,di,oh

uc=lc=di=oh=0

printf("Please enter a string('q'/'Q' end)...\n")

while(scanf(" %c",&ch)==1){

if(ch>='A' && ch<='Z')

uc++

else if(ch>='a' && ch<='z')

lc++

else if(ch>='0' && ch<='9')

di++

else

oh++

if(ch=='q' || ch=='Q')

break

}

printf("Uppercase:\t%d\nLowercase:\t%d\n  Numbers:\t%d\n    Other:\t%d\n",uc,lc,di,oh)

return 0

}

运行样例:

using namespace Gdiplus2 初始化GDI+资源和销毁GDI+资源在项目APP文件中//声明GDI+全局变量ULONG_PTR gdiplusTokenBOOL CMFCAndGDIApp::InitInstance(){// 如果一个运行在 Windows XP 上的应用程序清单指定要

// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,

//则需要 InitCommonControls()。否则,将无法创建窗口。

InitCommonControls()

//GDI+资源初始化

GdiplusStartupInput gdiplusStartupInput

GdiplusStartup(&gdiplusToken,&gdiplusStartupInput,NULL) CWinApp::InitInstance() // 初始化 OLE 库

if (!AfxOleInit()){AfxMessageBox(IDP_OLE_INIT_FAILED)

return FALSE

}//其他系统自动生成的代码}//添加一个析构函数用来释放GDI+资源CMFCAndGDIApp::~CMFCAndGDIApp(){GdiplusShutdown(gdiplusToken)

}3编译时加入GDIplus.lib文件在IDE中选择“项目|添加现有项目”,把GDIplus.lib文件添加进来,该文件一般在C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Lib目录下4好了,现在可以在MFC中使用GDI+了void CMFCAndGDIView::OnDraw(CDC* /*pDC*/){CMFCAndGDIDoc* pDoc = GetDocument()

ASSERT_VALID(pDoc)if (!pDoc)return //using GDI+

Graphics myg(this->GetDC()->m_hDC)

Pen pen(Color(255,0,255))

SolidBrush brush(Color(255,0,255))

CRect rect


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11578146.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存