Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将A1转换为R1C1格式_C - Fatal编程技术网

将A1转换为R1C1格式

将A1转换为R1C1格式,c,C,作为我最后一个问题的后续行动 我正试着回答与上一个问题相反的问题。也就是说,将表格A1的输入转换为表格R1C1的输出(更多信息,请看我的最后一个问题) 我会解释我的算法。假设我们需要将BC23转换为R23C55。我从BC23中提取“BC”和“23”,并将它们存储在不同的数组中。我制作了另一个数组,它分别存储A、B、C的值1、2、3…等等,作为输入。例如,我的数组将包含2和3,分别作为B和C的前两个元素。然后我使用一些数学方法将其转换为数字,在本例中,BC为55 这是完整的代码 #include

作为我最后一个问题的后续行动

我正试着回答与上一个问题相反的问题。也就是说,将表格A1的输入转换为表格R1C1的输出(更多信息,请看我的最后一个问题)

我会解释我的算法。假设我们需要将BC23转换为R23C55。我从BC23中提取“BC”和“23”,并将它们存储在不同的数组中。我制作了另一个数组,它分别存储A、B、C的值1、2、3…等等,作为输入。例如,我的数组将包含2和3,分别作为B和C的前两个元素。然后我使用一些数学方法将其转换为数字,在本例中,BC为55

这是完整的代码

#include <stdio.h>
#include <string.h>
#include <math.h>

int main()
{
    char str[5],col[5],row[5];
    int i=0,j=0,k=0,lenOfstr,lenOfcol;
    scanf("%s",str);

    while(str[i]>='A'&&str[i]<='Z')
    {
        col[j]=str[i];
        i++;
        j++;
    }
    col[j]='\0';
    lenOfstr=strlen(str);
    lenOfcol=strlen(col);

    int ascCol[lenOfcol];

    for(i=lenOfcol;i<lenOfstr;i++)
    {
        row[k]=str[i];
        k++;
    }
    row[k]='\0';

    for(i=0;i<lenOfcol;i++)
    {
        ascCol[i]=col[i]-64;
    }

    int sum=0;
    for(i=0;i<lenOfcol;i++)
    {
        sum=sum+(ascCol[i]*pow(26,lenOfcol-i-1));
    }

    printf("%d",sum);

    return 0;
}
#包括
#包括
#包括
int main()
{
字符str[5],列[5],行[5];
int i=0,j=0,k=0,lenOfstr,lenOfcol;
scanf(“%s”,str);

而(str[i]>='A'&&str[i]尝试将总和更改为:

sum = sum * 26 + ascCol[i]

这就避免了由于
pow
返回浮点数而导致的意外浮点舍入行为和其他问题

注意:您可以简单地将整个程序简化为:

#include <stdio.h>

int main()
{
    char str[5];

    scanf("%s", str);

    int i = 0;
    int sum = 0;    
    while(str[i] >= 'A' && str[i] <= 'Z')
    {
        sum = sum * 26 + (str[i] - 'A');
        i++;
    }

    printf("%d", sum);

    return 0;
}
#包括
int main()
{
char-str[5];
scanf(“%s”,str);
int i=0;
整数和=0;

而(str[i]>='A'&&str[i]尝试将总和更改为:

sum = sum * 26 + ascCol[i]

这就避免了由于
pow
返回浮点数而导致的意外浮点舍入行为和其他问题

注意:您可以简单地将整个程序简化为:

#include <stdio.h>

int main()
{
    char str[5];

    scanf("%s", str);

    int i = 0;
    int sum = 0;    
    while(str[i] >= 'A' && str[i] <= 'Z')
    {
        sum = sum * 26 + (str[i] - 'A');
        i++;
    }

    printf("%d", sum);

    return 0;
}
#包括
int main()
{
char-str[5];
scanf(“%s”,str);
int i=0;
整数和=0;

while(str[i]>='A'&&str[i]这听起来像是一个浮点问题。有些数字无法准确表示,因此当它们升级到另一个数据类型时,数字可能是错误的。例如,double->int。您可能需要使用bignum库。我在任何地方都没有使用浮点
pow
返回一个浮点数字。我不知道这一点。现在很好这听起来像是一个浮点问题。有些数字无法准确表示,因此当它们升级到另一个数据类型时,数字可能是错误的。例如,double->int。您可能需要使用bignum库。我在任何地方都没有使用浮点
pow
返回一个我不知道的浮点数字。现在好了是的,做了这个工作,不知道pow返回浮点数做这个工作的,不知道pow返回浮点数