c语言编程高手请进:麻烦帮忙解决下面这个菜鸟级的问题!(两个问题),求程序代码!
1、输入一个二进制数,打印出相应的十进制数!2、编写一个程序,要求输入一个任意位数的整数,计算并打印出它的数字中共有多少个7?...
1、输入一个二进制数,打印出相应的十进制数!
2、编写一个程序,要求输入一个任意位数的整数,计算并打印出它的数字中共有多少个7? 展开
2、编写一个程序,要求输入一个任意位数的整数,计算并打印出它的数字中共有多少个7? 展开
3个回答
展开全部
首先:#include"stdio.h"宽历
int fun(int i, int n)
{
int m=1;
for(int j=0;j<i;j++)
i++;
a=a/10;
}
printf("%d",b);
}
第二题塌册
#include "stdio.h"
main()
{
int x,j,s,a;
scanf("%d"团巧宏,&x);
j=x;
s=0;
while(j>0)
{ a=j%10;
if(a%7==0)
s++;
j=j/10;
}
printf(" %d中有%d个7",x,s);
}
int fun(int i, int n)
{
int m=1;
for(int j=0;j<i;j++)
i++;
a=a/10;
}
printf("%d",b);
}
第二题塌册
#include "stdio.h"
main()
{
int x,j,s,a;
scanf("%d"团巧宏,&x);
j=x;
s=0;
while(j>0)
{ a=j%10;
if(a%7==0)
s++;
j=j/10;
}
printf(" %d中有%d个7",x,s);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题
#include"stdio.h"
int fun(int i, int n)
{
int m=1;
for(int j=0;j<i;j++)
m*=n;
return m;
}
void main()
{
long a;
int i=0,b=0;
scanf("%d",&a);
while(a>0)
{
b+=a%10 * fun(i,2);
i++;
a=a/10;
}
printf("%d",b);
}
第二题困桥握
#include "stdio.h"
main()
{
int x,j,s,a;
scanf("%d",&x);
j=x;
s=0;
while(j>0)
{ a=j%10;
if(a%7==0)
s++;
j=j/汪庆10;
}
printf(" %d中有消培%d个7",x,s);
}
#include"stdio.h"
int fun(int i, int n)
{
int m=1;
for(int j=0;j<i;j++)
m*=n;
return m;
}
void main()
{
long a;
int i=0,b=0;
scanf("%d",&a);
while(a>0)
{
b+=a%10 * fun(i,2);
i++;
a=a/10;
}
printf("%d",b);
}
第二题困桥握
#include "stdio.h"
main()
{
int x,j,s,a;
scanf("%d",&x);
j=x;
s=0;
while(j>0)
{ a=j%10;
if(a%7==0)
s++;
j=j/汪庆10;
}
printf(" %d中有消培%d个7",x,s);
}
追问
第一题能详细介绍一下吗(可追加分)?第二题好像位数过长的数据就会出现错误!不知为什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.
long DoTest(char* s)
{
if (s == NULL)
{
return 0;
}
int n = strlen(s);
long ret = 0;
int count = 1;
for(int i = n-1; i > -1; i--)
{
char c = s[i];
if (c != 48 && c != 49)
{
return 0;
}
if (c == 48)
{
count *= 2;
continue;
}
else
{
ret += count;
}
count *= 2;
}
return ret;
}
void main()
{
char pBuffer[100];
scanf("%s",pBuffer);
long ret = DoTest(pBuffer);
printf("%ld\n", ret);
}
2.
void main()
{
int pBuffer;
int j,k,l;
scanf("誉埋%d",pBuffer);
do
{
j = pBuffer % 10;
k = pBuffer / 10;
if (j == 7)
l++;
}while(k)
printf("一共有庆闷蚂%d个罩羡7\n",&l);
}
long DoTest(char* s)
{
if (s == NULL)
{
return 0;
}
int n = strlen(s);
long ret = 0;
int count = 1;
for(int i = n-1; i > -1; i--)
{
char c = s[i];
if (c != 48 && c != 49)
{
return 0;
}
if (c == 48)
{
count *= 2;
continue;
}
else
{
ret += count;
}
count *= 2;
}
return ret;
}
void main()
{
char pBuffer[100];
scanf("%s",pBuffer);
long ret = DoTest(pBuffer);
printf("%ld\n", ret);
}
2.
void main()
{
int pBuffer;
int j,k,l;
scanf("誉埋%d",pBuffer);
do
{
j = pBuffer % 10;
k = pBuffer / 10;
if (j == 7)
l++;
}while(k)
printf("一共有庆闷蚂%d个罩羡7\n",&l);
}
追问
第一个添加了两个头文件之后好像可以,第二个,不行啊?
追答
void main()
{
int pBuffer;
int j,k,l;
scanf("%d",pBuffer);
k = pBuffer;
do
{
j =k % 10;
k = k / 10;
if (j == 7)
l++;
}while(k);
printf("一共有%d个7\n",&l);
}
后面掉了个;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询