求解一道c语言程序设计题

fun函数的功能是:统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数。并把该整数中各位上最大的数字值作为函数值返回。例如,若输入30800,则零的个数为3,各... fun函数的功能是:统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数。并把该整数中各位上最大的数字值作为函数值返回。例如,若输入30800,则零的个数为3,各位上数字值最大的是8。
要求运用指针类型及函数编程
展开
 我来答
安讯网络
2009-05-04 · TA获得超过1104个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:70.5万
展开全部
#include <stdio.h>
int fun(char *s, int *n) //注意,传进来的得是一个字符串数组!
{
char *t,max;
*n = 0;
t = s;
max = *t;
t++;
while(*t)
{
if(*t == '0')
{
*n+=1;
}
if(max < *t)
{
max = *t;
}
t++;
}
return (max - '0'); //返回的是数字字符相对0字符的值差,也恰好是他的数值
}
void main(){
char *s="30800";
int n=0,m;
m = fun(s, &n);
printf("各位上数字值最大的是:%d,零的个数为:%d\n",m,n);
}

这是你要的函数,我是直接在这个网页的窗口编写的,可能哪里会有些小错误,这就要靠你自己修改啦

^_^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2009-05-04 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3684万
展开全部
#include <stdio.h>
int fun(int n,int *nCnt)
{
int max = 0;
int tmp = 0;

while(n)
{
tmp = n%10;
if(tmp >max)
{
max = tmp;
}
if(tmp == 0)
{
(*nCnt)++;
}
n/=10;
}

return max;
}

void main(void)
{
int n = 30800;
int max = 0,nCnt = 0;

max = fun(n,&nCnt);

printf("max:%d,0 cnt:%d\n",max,nCnt);

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
隗沛闳淑惠
2019-04-04 · TA获得超过4012个赞
知道大有可为答主
回答量:3199
采纳率:33%
帮助的人:153万
展开全部
#include
void
main()
{
int
a[10],j,i,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
}
这是典型的冒泡法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
以抽l
2020-06-05 · TA获得超过4124个赞
知道大有可为答主
回答量:3182
采纳率:25%
帮助的人:209万
展开全部
main()
{
int
a[10],j,i,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式