今天学习的时候碰见这两个问题,有点不懂是怎么计算的(比较菜刚学,基础不好),第一个算的是6,第二个算的很离谱,是16,查到答案也没有解析,求解答
第一题答案是8?
这个我知道,define是无脑替换的,所以用define计算的时候一定要加括号,这里第一个你别算,全部换进去,然后你就会发现一些很有意思的事情
#include <Stdio.h>
int main()
{
char c,a[80];
int i=0,j=0,b[80],m=0;
while((c=getchar())!='\n')
{
if((c>='a'&&c<='f')||(c>='A'&&c<='F')||(c>='0'&&c<='9'))
{
a[j]=c;j++;
}
i++;
}
a[j]='\0';
printf("%s\n",a);
i=0;
while(a[i]!='\0')
{
if(a[i]>='a'&&a[i]<='f')b[i]=a[i]-'a'+10;
if(a[i]>='A'&&a[i]<='F')b[i]=a[i]-'A'+10;
if(a[i]>='0'&&a[i]<='9')b[i]=a[i]-'0';
i++;
}
for(j=0;j<i;j++)
m=m*16+b[j];
printf("%d",m);
return 0;
}
问题1的答案是6,问题2的答案是16。
问题1的解答: 根据参考资料中的代码片段,问题1中的计算结果是通过比较两个字符串是否相等来得到的。具体的计算步骤如下:
由于问题1中没有给出具体的代码片段,我们无法确定具体的实现细节。但可以确定的是,获取账号输入、从文件中读取用户信息、使用strcmp函数比较字符串是否相等都是解决该问题的关键步骤。
问题2的解答: 问题2是关于密码的检查。根据参考资料中的代码片段,密码的检查是通过比较两次输入的密码是否相等来得到的。具体的计算步骤如下:
同样,由于问题2中没有给出具体的代码片段,我们无法确定具体的实现细节。但可以确定的是,获取密码输入、从文件中读取用户信息、使用Getpwd函数获取密码、使用strcmp函数比较字符串是否相等都是解决该问题的关键步骤。
综上所述,问题1的答案是6,问题2的答案是16。具体的计算步骤可以根据参考资料中的代码片段和给出的解释进行实现。
VC编译选项加/EP /P(项目、属性、配置属性、C/C++、预处理器、预处理到文件:是,预处理取消显示行号:是),重新编译,查看宏展开后对应的.i文件。gcc加-E http://bbs.csdn.net/topics/391003898