代码小白--浩


私信TA

用户名:dotcpp0608225

访问量:7463

签 名:

等  级
排  名 317
经  验 5475
参赛次数 0
文章发表 29
年  龄 0
在职情况 学生
学  校 哔哩哔哩大学
专  业 网络工程

  自我简介:

解题思路

这个是我做这道题的思路,希望对你们有帮助。注意:这个代码不是题目的答案!!!!!!!!!

#include<stdio.h>

//char a[1001]={'\0'};            //(1)     有(1)无(2),有(2)无(1)!!!!!!

/*int main()

{

    char a[499]={'\0'};             //(2) 数组最大申请为499个空间,大于499时会出现乱码,但是定义成全局变量不会出现该问题。

    int x,y,i,n,w,k,l;

    while(1)

    {

        scanf("%d%d",&x,&y);

        sprintf(a,"%d",x/y);        //将整数部分先打印进数组中。

        w=strlen(a);

        a[w]='.';                   //打印小数点。

        for(i=w+1;i<499;i++)

        {

            k=x%y*10;               //竖式除法计算原理。

            a[i]=(char)(k/y)+'0';   //将结果继续打印进数组中

            x=k%y;

            if(x==0)

                break;

        }

        puts(a);                    //打印最终结果。

        printf("\n");

        for(i=0;i<=strlen(a);i++)   //清空数组,方便下次计算(我笨,只会这种数组清空<QwQ>)

            a[i]='\0';

    }

    return 0;

}*/


注意事项:

参考代码:

//这个才是答案!!!!!

#include<stdio.h>

char c[10001]={'\0'};  //--注意这里要定义成全局变量,因为申请的空间有些大,定义成局部变量有概率最终结果会出现乱码。

int main()

{

    int i,a,b,k;

    long n;

    c[0]='.'; //----因为要求的是小数部分,所以整数部分省略,直接打印小数点。

    scanf("%d%d%ld",&a,&b,&n);

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

    {

        k=a%b;  //------求余,并将余数赋值给k。

        c[i]=(char)(10*k/b)+'0';  //利用竖式计算的原理,求出结果并储存到数组中

        a=10*k%b;    //竖式计算原理,可以随便在纸上写一个除法来辅助理解

    }

    printf("%c",c[n]);  //  直接打印最终结果。

    return 0;

}


 

0.0分

4 人评分

  评论区

  • «
  • »