尝试在C中创建以下函数:
bool randBool(double bias)
Run Code Online (Sandbox Code Playgroud)
返回0或1随机返回.
绊倒我的部分是我想允许用户输入[-1.0,1.0]范围内的"偏差",这表示输出将是0或的可能性1.
以下是输入偏差应如何影响功能的几个示例:
================================================== =====
randBool(-1.0)应该0100%返回.
randBool(1.0)应该1100%返回.
randBool(-0.5)返回的可能性0比50%高1.
randBool(0.05)返回的可能性1比5%多0.
randBool(0.0)是没有更多的可能返回0比1.
================================================== =====
我几乎可以肯定这是一个概率问题,但我对这个主题并不熟悉,所以我对如何实现这个功能感到困惑.
我有一个 C 函数,用于格式化具有以下签名的字符串:
int
string_format
( char* dst
, const char* fmt
, ...
);
Run Code Online (Sandbox Code Playgroud)
我通常这样称呼它:
char buf[20];
const char* name = "Jeff";
string_format ( buf , "Hello %s!\n" , name );
Run Code Online (Sandbox Code Playgroud)
我现在尝试使用 ANSI 颜色代码处理彩色文本。理想情况下,我想在我的字符串文字中使用它们,如下所示:
char buf[20];
const char* name = "Jeff";
string_format ( buf , COLOR_RED "Hello %s!\n" , name );
Run Code Online (Sandbox Code Playgroud)
我编写了一些宏来构建这些字符串文字,但我做错了一些事情。例如,我尝试过:
#define ANSI_CC(color) "\033["#color"m"
#define ANSI_CC_FG_RED "91"
#define COLOR_RED (ANSI_CC(ANSI_CC_FG_RED))
Run Code Online (Sandbox Code Playgroud)
但是当我尝试调用 时string_format (buf, COLOR_RED "Hello world.\n""),出现编译器错误:
error: expected ')' before string constant
| COLOR_RED "Hello world.\n" …Run Code Online (Sandbox Code Playgroud) 抱歉这个糟糕的标题——不知道还能如何描述我想要实现的目标。
这几天一直在尝试制作一个 Bash 脚本来实现一个非常简单的效果,但我不知道如何实现!
该脚本的命令行参数为:(1) 长度为 的字符串n,(2) 整数“目标长度” N,以及 (3) 整数偏移量M。另外,可以假设M,N < n. 我需要该程序执行以下操作:
如果是M+N < n,它应该打印N从索引开始的字符串的字符M。
./script.sh "Hello world!" 5 3应该打印lo wo,
./script.sh "Hello world!" 9 0应该打印Hello wor,等等。
否则(即 if M+N >= n),它应该打印到字符串的末尾,然后是字符串开头的任意多个字符以满足目标 length N。
./script.sh "Hello world!" 5 10应该打印d!Hel,
./script.sh "Hello world!" 11 6应该打印world!Hello,等等。
产生的效果是字符串被截短或“包裹”,使其始终具有目标长度N。
特别是第二步让我感到困惑。我确信这可能是一个用子字符串语法做一些奇特的事情的简单例子,但我还没有弄清楚。我很想发布代码,但我什至还没有想到可以完成这项工作的伪代码;这就是我被困住的原因..