|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小弟写了一个小程序,实现二进制转十进制。以下是代码:- #include<stdio.h>
- void main()
- {
- int f;
- loop:for(f=1;;f++)
- {
- int fun(int x);
-
- char b[100][100];
- int a[100];
- int i=0,j,l=0,s;
-
-
- printf(" Input num(er jing zhi):\n");
- while((b[f][i]=getchar())!='\n')
- {
- i++;
- }
- b[f][i]='\0';
- i=0;
- while(b[f][i]!='\0')
- {
- if(b[f][i]=='1')a[i]=1;
- else if (b[f][i]=='0')a[i]=0;
- else
- {
- printf("非法输入,请重试!\n");
- goto loop;
- }
- i++;
- }
-
- for(j=0;j<i;j++)
- {
- s=a[j]*fun(i-j-1);
- l=l+s;
- }
- printf("二进制数为:");
- for(j=0;j<i;j++)
- {
- putchar(b[f][j]);
- }
- putchar('\n');
- printf("十进制数为:");
- printf("%d\n",l);
- putchar('\n');
- }
- }
- int fun(int x)
- {
- int y=1,w;
- for(w=1;w<=x;w++)
- {
- y=y*2;
- }
- return y;
- }
复制代码
以下是运行效果:
在此代码中,我是用goto 语句来实现抵抗非法输入。这在书写代码时,似乎是不提倡的。请问各位,如果不用goto语句,如何实现这个目的呢?
请指教,小弟谢谢了……
|
|