本人用的是VC6.0,照着书上的C语言教程学着写的,题目和编程如下,问题是运行后没有输出十进制数!为什么呢?高手求指点!
输入一个N进制数,把它转成十进制数并输出。
编程如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char a[30];int i,n,l,s,t=0;
printf(“please input mumbers and characters\n”);
gets(a);
l=strlen(a);
strupr(a);
printf(“please input a mumber\n”);
scanf(“%d\n”,&n);
for(i=0;i<l;i++)
{
if(a[i]-“0”>=n&&a[i]<“A”||a[i]-“A”+10>=n)
{printf(“error”);
exit(0);}
if(a[i]>=”0″&&a[i]<=”9″) s=a[i]-“0”;
else if (n>=11&&(a[i]>=”A”&&a[i]-“A”+11<=n)) s=a[i]-“A”+10;
t=t*n+s;
}
printf(“十进制是:%d\n”,t);
}
输入一个N进制数,把它转成十进制数并输出。
编程如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char a[30];int i,n,l,s,t=0;
printf(“please input mumbers and characters\n”);
gets(a);
l=strlen(a);
strupr(a);
printf(“please input a mumber\n”);
scanf(“%d\n”,&n);
for(i=0;i<l;i++)
{
if(a[i]-“0”>=n&&a[i]<“A”||a[i]-“A”+10>=n)
{printf(“error”);
exit(0);}
if(a[i]>=”0″&&a[i]<=”9″) s=a[i]-“0”;
else if (n>=11&&(a[i]>=”A”&&a[i]-“A”+11<=n)) s=a[i]-“A”+10;
t=t*n+s;
}
printf(“十进制是:%d\n”,t);
}
解决方案
40
scanf(“%d\n”,&n);多了一个\n
改成
改成
scanf("%d",&n);
20
scanf(“%d\n”,&n);多了一个\n