C语言改错:输入若干个正整数,判断每个数从高位到低位各位数字是否按值从小到大排列.
答案:3 悬赏:60
解决时间 2021-02-22 23:15
- 提问者网友:一抹荒凉废墟
- 2021-02-22 09:42
C语言改错:输入若干个正整数,判断每个数从高位到低位各位数字是否按值从小到大排列.
最佳答案
- 二级知识专家网友:西风乍起
- 2021-02-22 10:37
if(fun(n)=1)改为if(fun(n)==1),细心啊。。
错了这个,还有很多问题。。。。逻辑有严重问题。。。
建议重新写一个,把数字当成字符看,判断前一个字符是不是大于等于后一个字符。
上面的仍旧不对,我已经尽量少改了,有些地方不是很规范,但楼主应该是新手,我就不纠正了,不然楼主会混淆的。。。。
#include
int fun(int m);
int main(){
int n;
scanf("%d",&n);
while(n>0){
if(fun(n)==1)//这里要用两个等于,不是一个。不然就变成赋值了
printf("%d yes
",n);
else
printf("%d No
",n);
scanf("%d",&n);
}
return 0;
}
int fun(int m){
int k;
k=m/10;
while(m){
if(m%10 return 0;
}else{
m=m/10;
k=m/10;//向前移位应用/而不是%
}
}
return 1;
}
追问:原来有这么多问题……
我在guide里编译成功了,但运行之后一直没结果啊……
追答:这我还真不知道,我没用过那个编译器,我这里是成功了的,运行结果也是正确的。
错了这个,还有很多问题。。。。逻辑有严重问题。。。
建议重新写一个,把数字当成字符看,判断前一个字符是不是大于等于后一个字符。
上面的仍旧不对,我已经尽量少改了,有些地方不是很规范,但楼主应该是新手,我就不纠正了,不然楼主会混淆的。。。。
#include
int fun(int m);
int main(){
int n;
scanf("%d",&n);
while(n>0){
if(fun(n)==1)//这里要用两个等于,不是一个。不然就变成赋值了
printf("%d yes
",n);
else
printf("%d No
",n);
scanf("%d",&n);
}
return 0;
}
int fun(int m){
int k;
k=m/10;
while(m){
if(m%10
}else{
m=m/10;
k=m/10;//向前移位应用/而不是%
}
}
return 1;
}
追问:原来有这么多问题……
我在guide里编译成功了,但运行之后一直没结果啊……
追答:这我还真不知道,我没用过那个编译器,我这里是成功了的,运行结果也是正确的。
全部回答
- 1楼网友:怙棘
- 2021-02-22 12:02
子函数这样写应该没问题了
- 2楼网友:街头电车
- 2021-02-22 11:37
if语录后用==
还有,返回值有问题
return 1放else里面,原有的删除,再加一个break
还有,返回值有问题
return 1放else里面,原有的删除,再加一个break
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯