c语言问题 在主函数中定义整型数组存储10名同学的成绩,调用函数f1寻找最高分,将其返回到主函数中输出?

c语言问题 在主函数中定义整型数组存储10名同学的成绩,调用函数f1寻找最高分,将其返回到主函数中输出?,第1张

#include <stdioh>

int f1(int a[],int n)

{

int m=a[0],i;

for(i=1;i<n;i++)

if(a[i]>m)

m=a[i];

return m;

}

int main()

{

int a[10]={71,62,45,99,58,87,49,60,71,94};

printf("最高分是:%d\n",f1(a,10));

return 0;

}

修改后的C语言程序:

#include<stdioh>

void main()

{

float jd(float a[][5]); / 修改处1 /

float a[][5] = {{78,59,63,70,55}, {3,2,4,3,3}}; / 修改处2 /

float pjd = jd(a); / 修改处3 /

printf("平均绩点:%1f\n", pjd); / 修改处4 /

if(pjd >= 2) / 修改处5 /

printf("获得学位证\n");

else

printf("无法获得学位证\n");

}

float jd(float a[][5])

{

float zxf=0, sum=0;

int i;

float result; / 修改处6 /

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

zxf = zxf + a[1][i];

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

{

if(a[0][i] >= 60)

sum=(float)(sum + (a[0][i] - 50)  01 a[1][i]);

}

result = sum / zxf; / 修改处7 /

return result; / 修改处8 /

}

运行测试:

平均绩点:13

无法获得学位证

至于输入输出部分自己会做吧,我就给你实现的函数代码以及一个测试的(我用的vc2010,如果有不兼容的就稍微改改即可)

#include <stdioh>

#include <stdlibh>

#include <timeh>

void fun(int s,int num)

{

int i,save;

int space;

i=0;

save=0;

while (i<num-1)

{

if (s[i]>s[i+1])

{

space=s[i];

s[i]=s[i+1];

s[i+1]=space;

save=i;

if (i>0)

{

i--;

}

}

else

{

if (save)

{

i=save;

save=0;

}

i++;

}

}

}

void main()

{

srand((unsigned int)time(0));

int count=(int)(((unsigned int)rand())%10)+10;

int a=new int[count];

for (unsigned long i=0;i<count;i++)

{

a[i]=rand();

}

fun(a,&count);

for (unsigned long i=0;i<count;i++)

{

printf("%d\n",a[i]);

}

}

?没懂。。。看怎么设计啊。。。

是说 动态二维数组的创建的时候?

可以传递空 返回首地址; 也可以 传递首地址 返回空;

赋值 可以返回int 赋值个数 可以返回 bool 成功与否 可以返回 空

根据需要来确定

函数的返回值顶多是一个数,通过函数直接返回的这个数只有在是指针时才能给出多个数据结果。

可以考虑以下几个方法:

返回指针:

int display() { int p; p=malloc(sizeof(int)6); return p; } //用p[0]~p[5]计算各位

void main() { int p; p=display(); free(p); }

使用全局变量:将shiwa,wa,qiao,bai,shi,ge定义成全局变量,然后子程序和主程序直接用

使用函数参数:

void display(int shiwa,int wa,int qiao,int bai,int shi,int ge)

函数中用类似这样的用法计算:(ge)=Data%10;

void main() { int shiwa,wa,qiao,bai,shi,ge; display(&shiwa,&wa,&qiao,&bai,&shi,&ge) }

用一个足够长的数返回:

long display() { long n;  n=shiwa; n=10; n+=wa; n=10; n+=qiao; n=10; n+=bai; n=10; n+=shi; n=10; n+=ge; return n; }

void main() { int wa; long n; n=display(); wa=n/10000; wa%=10; }

进行调用就可以了。

比如

int add(int a,int b)

{

    return a+b;

}

int main()

{

    int a=1,b=1;

    int sum = add(a,b);

}

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

原文地址: http://outofmemory.cn/langs/12176495.html

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

发表评论

登录后才能评论

评论列表(0条)

保存