程序实现输入2/8/16进制,通过选择输出对应的十进制数据
:::for循环中不明白是怎么实现的:::
#include<stdio.h>/*n进制转换为十进制*/
#include<string.h>
#include <stdlib.h> 

void main()
{
    long t1;
    int i,n,t,t3;
    char a[100];
    printf("input the number string\n");
    gets(a);
    strupr(a);/*将制定字符串内的小写字母转变为大写字母*/
    t3=strlen(a);//统计数组长度
    t1=0;
    printf("input the n(2/8/16):\n");
    scanf("%d",&n);
    for(i=0;i<t3;i++)
    {
        if(a[i]-'0'>=n&&a[i]<'A'||a[i]-'A'+10>=n)
        {
            printf("data error!!");
    exit(0);                  //退出程序
        }
        if(a[i]>='0'&&a[i]<='9')
        
            t=a[i]-'0';
            else if(n>=11&&(a[i]>='A'&&a[i]<='A'+n-10))
                t=a[i]-'A'+10;
            t1=t1*n+t;
    }
    printf("the decimal is %ld\n",t1);
}