求解一道c语言程序设计题
fun函数的功能是:统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数。并把该整数中各位上最大的数字值作为函数值返回。例如,若输入30800,则零的个数为3,各...
fun函数的功能是:统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数。并把该整数中各位上最大的数字值作为函数值返回。例如,若输入30800,则零的个数为3,各位上数字值最大的是8。
要求运用指针类型及函数编程 展开
要求运用指针类型及函数编程 展开
4个回答
展开全部
#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);
}
这是你要的函数,我是直接在这个网页的窗口编写的,可能哪里会有些小错误,这就要靠你自己修改啦
^_^
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);
}
这是你要的函数,我是直接在这个网页的窗口编写的,可能哪里会有些小错误,这就要靠你自己修改啦
^_^
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
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);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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]);
}
这是典型的冒泡法
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]);
}
这是典型的冒泡法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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]);
}
{
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]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询