C语言 数制转换

#include<stdio.h>

#include<stdlib.h>

#include<string.h>


#define M 8


int xx[M];

int proc(char *str,int x,int y)

{

    //int sum;

    int sum = 0;

    int i=0;

    char *p = str;

    for(i=0;i<M;i++)

    xx[i]=0;

    sum = sum * x + *p - ‘0‘;

    //sum = *p - ‘0‘;

    p++;

    while(*p)

    {

        sum = sum * x + *p - ‘0‘;

        p++;

    }


    i=0;


    while(sum != 0)

    {

        xx[i] = sum % y;

        sum = sum / y;

        i++;

    }

    return i;

}


void main()

{

    char str[6];

    int i;

    int n;

    int x;

    int y;


    printf("Enter a string:\n");

    gets(str);

    if(strlen(str) > 5)

    {

        exit(0);

    }

    for(i=0;str[i];i++)

    if(str[i] < ‘0‘ || str[i] > ‘9‘)

    {

        exit(0);

    }

    puts(str);

    printf("x= ");

    scanf("%d",&x);

    printf("y= ");

    scanf("%d",&y);


    n = proc(str,x,y);

    //printf("%d",n);


    for(i=n-1;i>=0;i--)

    printf("%d",xx[i]);


}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。