简单的C语言问题

#include<stdio.h>#include<string.h>intn,i=0;chart,a[100]="";char*change7(intn){i=0;wh... #include<stdio.h>
#include<string.h>
int n,i=0;
char t,a[100]="";
char*change7(int n)
{
i=0;
while(n>0)
{
a[i]=n%7+'0';//记得加'0',把数字变成字符
n=n/7;
i++;
}
a[i]='\0';
for(int n=0,j=i-1; n<j; n++,j--)
{
t=a[j];
a[j]=a[n];
a[n]=t;//将十进制转化为七进制
}
return a;
}
char*change9(int n)
{
i=0;
while(n>0)
{
a[i]=n%9+'0';//记得加'0',把数字变成字符
n=n/9;
i++;
}
a[i]='\0';//将十进制转化为九进制并且逆向取值
return a;
}
int main()
{
int x;
scanf("%d",&x);
printf("%s ",change7(x));
printf("%s ",change9(x));
}
eg.输入70输出130 77.
这个两个函数就是将十进制转化为七进制,将十进制转化为逆向的九进制。分开输出change7和change9的时候是正确的。。但是当change7和change9同时输出的时候就出现问题了。
int main()
{
int x;
scanf("%d",&x);
printf("%s %s",change7(x),change9(x));
}
改成这样的时候输入70输出的都是130
展开
 我来答
听不清啊
高粉答主

2018-11-13 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.8亿
展开全部
这是由于转换时,把答案放在a[]中,输出完成后
printf("%s ",change7(x));
再执行printf("%s ",change9(x));,把答案放在a[]中,输出完成后再输出就可以了的。
但是,printf("%s %s",change7(x),change9(x));时,先执行,change7(x),把答案放在a[]中,再执行,change9(x),把答案放在a[]中,全部调用完成后,再输出两次a[](因为9进制的内容把7进制的内容覆盖了,所以,就输出两个相同的值了)。
如果两次转换分别放在不同的数组中,就不会出现上面的问题了。
fastfs
2018-11-13 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:768万
展开全部
因为你传的是指针 相当于这样
change9(x);
change7(x);
printf("%s %s", a, a);
追问
那为什么分开输出的时候结果是正确的。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友090d7d1aa06
2020-05-28 · TA获得超过3640个赞
知道大有可为答主
回答量:3144
采纳率:32%
帮助的人:205万
展开全部
printf(((a+b+c)%2
==
0)
&&
((a%2
==
1)
||
(b%2
==1))
?"YES"
:
"NO");
解释:
2奇1偶的和肯定是偶数,如果为偶数,那么剩下3个数只要有一个奇数就可以输出YES
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霍妙弓智美
2020-05-22 · TA获得超过3890个赞
知道大有可为答主
回答量:3078
采纳率:31%
帮助的人:201万
展开全部
答案有什么用啊
你要告诉他怎么来的噻
(m=a>b)&&(n=c>d)
先执行m=a>b
因为>的优先级大于=所以先比较a,b,又a!>b所以 m=0。又因为是&&(当左边不为真时就不执行右边的)所以n=c>d就不执行。故n=7
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卫漾梁丘山彤
2019-11-17 · TA获得超过3758个赞
知道大有可为答主
回答量:3132
采纳率:28%
帮助的人:204万
展开全部
scanf和printf是格式化输入输出函数。%lf表示将要输入/输出double型的数据,%f表示将要输入/输出float型的数据。把double改成float的话,前面你告诉函数要输入/输出double型的数据,现在却输入/输出float型的,当然会出错了。如果要输入/输出float型数据,把%lf改成%5f也可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式