都用到了什么语句,能否运行出准确数值

计算球体积要使相对误差限为1%,问度量半径R 时允许的相对误差限是多少

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7775856
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:进制转换(十进制转为R进制)
  • 除此之外, 这篇博客: 十进制转换R进制;R进制转十进制中的 R进制转换十进制 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • (1)直接用C++里的函数,(不建议)

    strtol函数:它的功能是将一个任意1-36进制数转化为10进制数,返回是long int型。

    函数为long int strtol(const char *nptr, char **endptr, int base)

    base是要转化的数的进制,非法字符会赋值给endptr,nptr是要转化的字符,例如:

    char buffer[20]="10379cend$3";
    char *stop;
    printf("%d\n",strtol(buffer, &stop, 8));
    printf("%s\n", stop);
    

    输出结果:
    543
    9cend$3

    将一个8进制转化为10进制,读取1037,其他后面的为非法字符,转化结果以int型输出来。

    另外,如果base为0,且字符串不是以0x(或者0X)开头,则按十进制进行转化。如果base为0或者16,并且字符串以0x(或者0X)开头,那么,x(或者X)被忽略,字符串按16进制转化。如果base不等于0和16,并且字符串以0x(或者0X)开头,那么x被视为非法字符。

    最后,需要说明的是,对于nptr指向的字符串,其开头和结尾处的空格被忽视,字符串中间的空格被视为非法字符。

    (2)自定义函数

    int to_Ten(char sh[],int r)
    {
    	int len=strlen(sh),n=0;
    	double sum=0,k;
    	for(int i=len-1;i>=0;i--)
    	{
    		if(sh[i]>='A')k=(sh[i]-'7')*pow(r*1.0,n++);
    		else k=(sh[i]-'0')*pow(r*1.0,n++);
    		sum+=k;
    	}
    	printf("%.0lf\n",sum);
    }

     

    参考:

    https://blog.csdn.net/wangjunchengno2/article/details/78690248

    https://blog.csdn.net/coastline_x/article/details/78975567

    https://www.cnblogs.com/yxwkf/p/4085733.html

  • 您还可以看一下 刘润森老师的R语言机器学习课程中的 逻辑回归小节, 巩固相关知识点