问题描述
解决方案
在你的程序里scanf()函数返回的是一个正整数,无论你输入的是不是-1,他接收的一直是一个参数,所以返回的一直是1。并且还是使用“%lu”来接收
参数的,输入-1一定不会退出程序的,输入1.2scanf()只接收到了1,因为1.2不符合输入的规则“%lu”,也会返回1。程序不会停下
解决方案二:
疑惑:
1、输入0有效,输出真确
2、输入-1不退出,-1被强制转换为int类型
3、输入1.2输出1个奇数后又printf();然后才退出
解决方案三:
新郎和新娘问题
有新郎A B C 和新娘X Y Z
A说他要和X结婚,X说她要和C结婚,C说他要和Z结婚,他们都是在开玩笑
问他们是谁和谁要结婚
?
还是应用了穷举法思想
1、一共6个人,只有6种选择
2、根据要求,谁和谁不是一对,排除一些选择
?
?
源码:
#include
int func(int iint jint kchar wife[3])
{
??......
答案就在这里:C语言编程--新郎和新娘问题
解决方案四:
%lu表示输出无符号长整型整数 所以你输入负数也会被转成正数,改成%d
解决方案五:
你的题目都说了请输入一个正整数,对于非正整数要做出判断
解决方案六:
以“%lu”形式接收,又放在unsigned long int型变量里面,当然判断不了输入是不是-1了。
解决方案七:
里面做了强制类型转换的 只能输入正整数
解决方案八:
我知道了诶,改成while(scanf(""%d""&integer)==1 && integer>0)就可以了,没认真看书,
CSDN真是个好的网站,那么多人热心回复,以后发帖之前我一定会先自己琢磨透的!
谢谢大家了!
时间: 2025-01-02 07:35:10