请高手帮忙做一道C语言题
设有doublenum=你的11位学号(20071803089)编程输出num中数字0,1,……9出现的次数(调用函数)。编程详细点最好。谢谢各位。设有doublenum...
设有double num=你的11位学号(20071803089)编程输出num中数字0,1,……9出现的次数(调用函数)。
编程详细点最好。
谢谢各位。
设有double num=你的11位学号(后加 ., num只能是double类型,其他类型算错),编程输出num中数字0,1,……9出现的次数(函数形式,main中只是调用一次) 展开
编程详细点最好。
谢谢各位。
设有double num=你的11位学号(后加 ., num只能是double类型,其他类型算错),编程输出num中数字0,1,……9出现的次数(函数形式,main中只是调用一次) 展开
展开全部
不知道你想要什么方法,就写了2种,你可以都参考一下
已经在DEVCPP中测试通过
#include <stdio.h>
#include <stdlib.h>
int fun1( double num, int* count )
{
char sNum[12];//存储num的字符串形式
snprintf( sNum, 11, "%.0lf", num );//把
for ( int i=0; i<11; i++ )
{
int j = sNum[i]-'0';//sNum[i]中存的是字符型,把这个字符的ASCII码减0的ASCII码得出实际值
count[j]++;
}
return 0;
}
int fun2( double num, int* count )
{
double s = num;
double v = 10000000000.0;
int nr = 0;
for ( int i=0; i<11; i++ )
{
nr = (int)(s/v);//除以v得出当前第一个数字
s = s-(double)nr*v;//把第一位减去
count[nr]++;
v/=10;//v尾去除一个0
}
}
int main(int argc, char *argv[])
{
double num = 20071803089.0;
int count[10];
for ( int i=0; i<10; i++ )
{
count[i] = 0;
}//清0
fun1( num, count );
for ( int i=0; i<10; i++ )
{
printf("%d出现了%d次\n",i,count[i]);
}
printf("\n\n");
for ( int i=0; i<10; i++ )
{
count[i] = 0;
}//清0
fun2( num, count );
for ( int i=0; i<10; i++ )
{
printf("%d出现了%d次\n",i,count[i]);
}
system("PAUSE");
return EXIT_SUCCESS;
}
已经在DEVCPP中测试通过
#include <stdio.h>
#include <stdlib.h>
int fun1( double num, int* count )
{
char sNum[12];//存储num的字符串形式
snprintf( sNum, 11, "%.0lf", num );//把
for ( int i=0; i<11; i++ )
{
int j = sNum[i]-'0';//sNum[i]中存的是字符型,把这个字符的ASCII码减0的ASCII码得出实际值
count[j]++;
}
return 0;
}
int fun2( double num, int* count )
{
double s = num;
double v = 10000000000.0;
int nr = 0;
for ( int i=0; i<11; i++ )
{
nr = (int)(s/v);//除以v得出当前第一个数字
s = s-(double)nr*v;//把第一位减去
count[nr]++;
v/=10;//v尾去除一个0
}
}
int main(int argc, char *argv[])
{
double num = 20071803089.0;
int count[10];
for ( int i=0; i<10; i++ )
{
count[i] = 0;
}//清0
fun1( num, count );
for ( int i=0; i<10; i++ )
{
printf("%d出现了%d次\n",i,count[i]);
}
printf("\n\n");
for ( int i=0; i<10; i++ )
{
count[i] = 0;
}//清0
fun2( num, count );
for ( int i=0; i<10; i++ )
{
printf("%d出现了%d次\n",i,count[i]);
}
system("PAUSE");
return EXIT_SUCCESS;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
void translate()
{
int i,a[10]={0};char *ptr=(char *)malloc(sizeof(char)*11);
double d=20071803089;
gcvt(d,11,ptr);
for(i=0;i<11;i++)
a[*(ptr+i)-'0']++;
for(i=0;i<10;i++)
{
printf("%d:%d\n",i,a[i]);
}
}
int main()
{
translate();
return 0;
}
#include <stdlib.h>
#include <malloc.h>
void translate()
{
int i,a[10]={0};char *ptr=(char *)malloc(sizeof(char)*11);
double d=20071803089;
gcvt(d,11,ptr);
for(i=0;i<11;i++)
a[*(ptr+i)-'0']++;
for(i=0;i<10;i++)
{
printf("%d:%d\n",i,a[i]);
}
}
int main()
{
translate();
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不懂你们写的是啥`````
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询