截取数字和字符个数
我知道这样编是不正确的
我想知道,怎么样可以既提取到我输入的二进制,如1000
提取完了,就打印出4(这个是有多少个字符)
然后再打印1000(这个是我输入的二进制)
我的另外一个思路就是
先输入1000
计算有多少个字符
然后打印出来4
再要求用户输入1000
提取这个数字
打印出来1000
但是这样效率不高,请问怎样可以一步到位,既提取了数字,又计算出了字符个数? 看不懂什么意思 二进制1000是8,这小软件完全是为了学习,要什么效率 。C语言是面向过程的当然什么都要自己写 没有一步到位 刚写的
#include "stdio.h"
int main()
{
int a,i;
int count = -1;
char c = '0';
char f;
printf("请输入一个二进制数:\n");
int temp;
while(1)
{
count += 1;
f = getchar();
if(f != '\n')
{
temp = int(f - c);
}
else
{
break;
}
}
printf("这个二进制数字有%d位\n", count);
printf("这个二进制数是:");
for(i = 0; i < count; i++)
{
printf("%d",temp);
}
return 0;
} shuofxz 发表于 2016-2-11 23:38
刚写的
虽然声明了c和a,但是并没有用到他们,出错了 fatbug18 发表于 2016-2-12 17:23
虽然声明了c和a,但是并没有用到他们,出错了
不使用声明的变量,编译器还会报错吗?
a确实没用到,直接删了吧,c是用到的
改完应该没问题了 shuofxz 发表于 2016-2-12 18:28
不使用声明的变量,编译器还会报错吗?
a确实没用到,直接删了吧,c是用到的
改完应该没问题了
c还是没用到,不过只是warning(unused variable'c')
而且在 temp = int(f - c); 这一行有expected expression before'int'的error #include <stdio.h>
int main()
{
int ch, count = 0, num = 0;
printf("请输入一个二进制数:");
while ((ch = getchar()) != '\n')
{
count++;
num = num * 2 + (ch - '0');
}
printf("这个二进制数字有%d位!\n", count);
printf("转换为十进制的值是:%d\n", num);
return 0;
}
注意:程序假设用户按要求输入,并没有做输入合法性检测! 小甲鱼 发表于 2016-2-13 18:13
注意:程序假设用户按要求输入,并没有做输入合法性检测!
谢谢甲鱼哥哥,代我向布布君问好{:5_109:}
页:
[1]