关于下面发布的代码有两个问题:
1)当我在CodeBlocks上运行此代码时,代码有时会成功运行(返回0),但通常会在显示所有结果后返回错误(返回-1073741819).为什么会这样?
2)除了数组的最后一个元素值(1)(pTriangle [20] = 1)之外,这些值都是正确的.但是,我最后得到一些垃圾号码,我做错了什么?
我已经意识到我可以用二项式系数得到相同的结果,但我仍然不知道为什么我得到错误,如果我的错误可以找到它是最好的.
Update1:
pTriangle[i] = temp[i % 2 ? 0 : 1] + pTriangle[i];
似乎是问题所在.当我评论这段代码时,程序没有崩溃.我试图找出它为什么崩溃并试图找到解决方案:)
#include <stdio.h>
#include <stdlib.h>
#define LEVEL 20
int main()
{
int *pTriangle = (int*)malloc(sizeof(int)*(LEVEL+1));
int i;
for (i = 0; i < LEVEL; i++)
pTriangle[i] = 0;
createPascalTriangle(pTriangle, LEVEL);
for(i = 0; i < LEVEL+1; i++)
printf("pTriangle[%d]: %d\n", i, pTriangle[i]);
free(pTriangle);
return 0;
}
int createPascalTriangle(int *pTriangle, int level){
if (level <= 0)
return 0;
pTriangle[0] = 1;
pTriangle[1] …
Run Code Online (Sandbox Code Playgroud)
我目前正在尝试解决CodeChef中的问题,但我在循环中使用fgets()时遇到了麻烦.
第一个输入(T)将是一个包含用户输入数量的正整数.
然后由换行符分隔,用户将在任何情况下输入长度为10的字符串.
所以,我试过这个:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
int main()
{
int T;
int diffX, diffY;
char s[SIZE];
scanf("%d", &T);
while (T--){
fgets(s, SIZE, stdin);
printf("%s\n", s);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用以下输入测试代码时:
3
您好
嗨
什么
我只能输入"Hi",然后程序退出成功(返回0).
为什么会这样,我该如何解决?
提前谢谢你,
kpark.
TL; DR:有没有办法将行插入到子查询产生的中间"视图"或"表"中?
我不允许在数据库中更改表(SQL Server 2014).
该表仅记录任务的开始时间,但对于另一个查询,我需要找出所有任务的开始时间和结束时间.我可以冒昧地完成他们之间没有休息的任务.
通过在a.row = b.row - 1上使用JOIN,我能够获得除最后一个任务之外的所有任务的开始时间和结束时间.
我需要检索所有任务的开始和结束时间,可能是在中间查询结果"table"或"view"中插入一行,其中时间戳为NOW().
输入表
TaskID StartTime
-----------------------------
1 2018-08-10 03:00:00
2 2018-08-10 06:12:00
3 2018-08-11 07:13:00
Run Code Online (Sandbox Code Playgroud)
预期输出表
TaskID StartTime EndTime
----------------------------------------------------------
1 2018-08-10 03:00:00 2018-08-10 06:12:00
2 2018-08-10 06:12:00 2018-08-11 07:13:00
3 2018-08-11 07:13:00 2018-08-16 15:26:00 (now)
Run Code Online (Sandbox Code Playgroud)
输出表
TaskID StartTime EndTime
----------------------------------------------------
1 2018-08-10 03:00:00 2018-08-10 06:12:00
2 2018-08-10 06:12:00 2018-08-11 07:13:00
Run Code Online (Sandbox Code Playgroud)
WITH EnterTaskTimes AS (
SELECT ROW_NUMBER() OVER (ORDER BY StartTime ASC) TaskID …
Run Code Online (Sandbox Code Playgroud)