最小值c语言编写自定义函数,用最简单的c语言做出自定义函数之整数处理

解题思路:1.首先题目要求要用到三个自定义函数,那么首先想到的是输入(input)、处理(compel)、输出(output)。

2.然后是因为涉及到排序问题,然后我就想到了数组,但是怎样才能输出数组,后来我也是看了“我要看题解”得知可以用 void function_name(int* a)来表示(用return好像实现不了,我也不知道咋实现,欢迎大佬以这个思路来解决问题)。

3.输入输出自不必说太多,for循环,scanf,printf,主要是对于compel的思路:

首先在内部函数里我定义了i(给for循环计数用的),var_data,var_count过渡变量,如果符合最值就将值付给过渡变量(数据和位数),最后再用一个过渡变量t完成互换运算.

4.关于变量var_data,在比较最大值时为了让它进入if语句,我给他赋值为0;在比较最小值时,先给它赋初值为65535,后面在往下运行就是数组内部的操作了,

注意事项:1.这个看别人的了,所以就当做是笔记了,感觉还挺好.

2.自己犯的错误,本来想定义max和min,后来互换的时候发现不对劲,数组内没有互换而且重复了,这个错误很不应该嗷.

3.发现越往后面用到指针的知识变多了。

参考代码:#include void input(int* a);

void output(int* a);

void compel(int* a);

int main(void)

{

int a[10];

input(a);

compel(a);

output(a);

return 0;

}

void input(int* a)

{

int i;

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

{

scanf("%d",&a[i]);

}

}

void compel(int* a)

{

int i,t;

int var_data=0,var_cout=0;

//最大值与最后一位的互换

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

{

if(var_data<=a[i])

{

var_data=a[i];

var_cout=i;

}

}

t=a[9];

a[9]=a[var_cout];

a[var_cout]=t;

//最小值与第一位互换

var_data=65535;

var_cout=0;

for(i=0;i=a[i])

{

var_data=a[i];

var_cout=i;

}

}

t=a[0];

a[0]=a[var_cout];

a[var_cout]=t;

}

void output(int* a)

{

int i;

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

{

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

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值