我有一个定义变量的程序 int data
该程序用于 scanf("%d",&data)从stdin读取数据.如果来自stdin的数据不是整数,我必须打印错误消息.
我试过了 if(scanf("%d",&data) ==EOF){ printf("error");return 1;}
它对我没用.那么,我如何确定scanf是否失败或成功?
我们想要忽略一些文件,而不是通过git跟踪,我们无法弄清楚如何做到这一点.
我们有一些第三方C库已解压缩,我们在Git中有它.但是当你configure && make它,它会产生许多新文件.如何写入.gitignore跟踪源文件而不是新的东西.(这不像禁止*.o)
编辑:至少有12种文件类型.所以我们不想枚举,我们想要哪种类型,哪些不是.
我错过了关于defmulti和defmethod的重要观点.我读过几本书对defmulti的解释,我仍然感到困惑.
我想得到一个随机值,取决于它是一个交易还是100.00这样的金额
我想调用(random-val)并返回avail-trans值或随机小数.我已经尝试将函数放在一个映射中,但是我得到了相同的值,用于avail-trans,一个\ B.
(def^:dynamic map-val {:trans (random-trans) :amt (random-amount)})
Run Code Online (Sandbox Code Playgroud)
这是显示我正在做的不起作用的最小代码量.我很感激任何指针或帮助.
(def^:dynamic avail-trans [\B \W \D \A])
(defn random-trans
[]
(nth avail-trans (.nextInt random (count avail-trans))))
(defn random-amount
[]
(float (/ (.nextInt random (count (range 1 10000))) 25 )))
Run Code Online (Sandbox Code Playgroud)
以下构造不正确,但我不确定为什么或如何解决问题:
(defmulti random-val :val-type)
(defmethod random-val :trans []
(random-trans))
(defmethod random-val :amt []
(random-amount))
Run Code Online (Sandbox Code Playgroud)
调用(random-val :trans)导致此错误:
java.lang.IllegalArgumentException:multimethod'random-val'中没有用于调度值的方法:null(NO_SOURCE_FILE:0)
假设我想在vim中访问此远程文件
ftp://amr@steamboy//home/amr/bin/dr_snapshot.py
并且,在提示时,我不小心输入了错误的密码.
如何重置密码?现在我必须退出并重新启动vim.
客户端和服务器都在Linux上.
谢谢.
我想创建一个闭包(函数生成器)来将数字提升为幂,而不使用特定的Clojure库来完成此任务.现在,我可以用循环来做这件事.复发.
(defn exp1
[in-num in-exp-multi]
(loop [num in-num exp-multi in-exp-multi]
(if (> exp-multi 1)
(recur (* num in-num) (- exp-multi 1))
num)))
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用partial来提高功率,但是我仍然坚持使用重复乘以一个数字所需的构造数次.所以,我正在寻找一个生成函数并将其应用x次的示例.
这个例子只是用循环来解决问题..复发.我的愿望是用封闭来解决这个问题.
我有问题了解return fibonacci( number-1 ) + fibonacci( number-2 )以下程序中的功能:
import sys
def fibonacci( number ):
if( number <= 2 ):
return 1
else:
return fibonacci( number-1 ) + fibonacci( number-2 )
Run Code Online (Sandbox Code Playgroud)
问题是我无法想象这条线是如何工作的:
return fibonacci( number-1 ) + fibonacci( number-2 )
Run Code Online (Sandbox Code Playgroud)
"fibonacci(数字-1)"和"斐波那契(数字-2)"是否同时处理?或者"斐波纳契(数字-1)"是第一个被处理,然后是第二个?
我只看到处理它们最终都会返回'1'所以最后的结果我希望看到它是'1 + 1'='2'
如果有人能够详细解释其计算过程,我将非常感激.
我认为这是一个非常新的问题,但我无法真正了解其过程.
我的问题是在下面的例子中val = val >> 2;做了什么?那是我相信它是4分裂.
int val = 12345678;
val = val >> 2;
Run Code Online (Sandbox Code Playgroud)
这是这个问题的背景.
我有一个水表的读数,比如12345678.我们的水表工作的方式是两个右手数字被扔掉读取,所以123456真的是读.(有理由丢掉两个与水流如何使寄存器转动有关的右手数字.但这与我的问题无关.)
目前,我们采用12345678并将它除以100,使用4GL整数变量,所以我没有得到十进制数.我们正在进行截断,我们没有想到,我正在尝试确定位移是否会更好.
在将读取截断为123456之后,使用最后一次读取(也是截断的)计算增量,并从中生成消耗.
我在Informix 4GL中可以使用C,我相信删除最低两位数的最佳方法是向右移位2.我相信这是我将获得的唯一方法 - 例如 -
5 digit meter 12345 --> 123
6 " " 123456 --> 1234
7 " " 1234567 --> 12345
Run Code Online (Sandbox Code Playgroud)
谢谢你容忍一个简单的问题.我们试图找出一个问题,即端点 - 与仪表交谈 - 是如何编程的,以及数据实际上意味着什么来自端点.
我有一个哈希 my %read_data = ();
我正在尝试建立像这样的键和值
$read_data{"status"} = 0;
$read_data{"suffix"} = "_SP";
$read_data{"consumption"} = 95;
Run Code Online (Sandbox Code Playgroud)
我所看到的如下,我无法弄清楚我做错了什么.
Key=status
Key=0
Key=suffix
Key=_SP
Key=consumption
Key=95
Run Code Online (Sandbox Code Playgroud)
我正在打印这个
for my $k1 (%read_data)
{
print "Key=".$k1."\n";
}
Run Code Online (Sandbox Code Playgroud) 我对测试参数的方式感到有点困惑.以下是从下面发布的源代码中的两个示例.首先是这个
if(!defined($DBHdl) || !defined($acct_no));
测试未定义参数的方法?
其次,在分配hashref之后
$ptMtrRecRef = $ptSelHdl->fetchrow_hashref;
是测试$ptMtrRecRef被定义使用的最佳方式
if(!$ptMtrRecRef)
要么
if(!defined($ptMtrRecRef))?
###############################################################################
# Returns count of meters per account number.
# $PkNam -- package name discarded
# $DBHdl -- ICS database handle
# $acct_no -- water account number
sub mgbl_get_meter_count
{
my ($PkNam, $DBHdl, $acct_no) = @_;
die("mgbl_get_meter_count passed undef handles.\n")
if(!defined($DBHdl) || !defined($acct_no));
my $ptSelHdl;
my $ptMtrRecRef;
my $sql_statement =
"select count(*) from meter m where m.acct_no = ".$acct_no.";";
$ptSelHdl = $DBHdl->prepare($sql_statement);
die("Cannot prepare …Run Code Online (Sandbox Code Playgroud) 我知道如何制作清单:
let f n =
let out_listA = [ 0 .. (n - 1) ]
let out_list =
out_listA |> List.reduce (fun state item -> state + ", " + item)
out_list
Run Code Online (Sandbox Code Playgroud)
我正在进行在线练习,涉及打印如下所示的内容n = 5.
[0, 1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
代替
[0; 1; 2; 3; 4; 5]
Run Code Online (Sandbox Code Playgroud)
从Web上查看,逗号分隔的输出似乎是转换为字符串的列表.
那么,我的问题是[0, 1, 2, 3, 4, 5],当用从分号分隔的列表转换为用逗号分隔时,代表什么以及实际发生了什么呢?
结语:
Fyodor Soikin的评论是正确的; 我很困惑.
事实证明,以逗号分隔的列表是一个设计,用于打印出以分号分隔的列表作为数组括号内的逗号分隔列表.
以下解决方案来自github上的ehotinger:
open System
[<EntryPoint>]
let main argv =
let s = Console.ReadLine() |> int …Run Code Online (Sandbox Code Playgroud)