我是编程的新手,也是这个网站的新手,所以你好......我试图获得10到10之间整数的运行总数,但是我得到了胡言乱语的答案,我只是无法理解为什么.为了试图找出问题所在,我补充说
printf(" running total is %d\n", sum);
Run Code Online (Sandbox Code Playgroud)
线路到while循环,但只是得到了更多相同的废话...请参阅http://codepad.org/UxEw6pFU的结果....
我确信这有一个非常明显的解决方案......我只是太傻了看不过它!有谁知道我做错了什么?
#include <stdio.h>
int main(void) {
int count,sum,square;
int upto=10;
count = 0;
square = 0;
while (++count < upto) {
square = count * count;
printf("square of %d is %d",count,square);
sum =square + sum;
printf(" running total is %d\n", sum);
}
printf("overall total of squares of integers 1 thru 10 is %d\n", sum);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 更新:正如Brian指出的那样,我最初的想法确实存在并发问题.这个ConcurrentDictionary<TKey, TValue>.AddOrUpdate方法的签名有点模糊,可以让一个懒惰的思想家(比如我自己)相信所有东西 - 集合添加以及队列推送 - 会以某种方式同时发生,原子地(即,神奇地) ).
回想起来,有这种期望对我来说是愚蠢的.实际上,无论执行情况如何AddOrUpdate,都应该很清楚,我的原始想法中仍会存在竞争条件,正如Brian所指出的那样:在添加到集合之前推送到队列,因此可能发生以下事件序列:
上述序列将导致集合中的项目不在队列中,从而有效地将该项目列入数据结构的黑名单.
现在,我想了一会儿,我开始认为以下方法可以解决这些问题:
public bool Enqueue(T item)
{
// This should:
// 1. return true only when the item is first added to the set
// 2. subsequently return false as long as the item is in the set;
// and it will not be removed until after it's popped
if (_set.TryAdd(item, true))
{
_queue.Enqueue(item);
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
以这种方式构造它, …
嗨如果我编写一个只包含静态SQL的自定义包,它是否会使其他包无效.(作为包装代码发布的其他第三方软件包).
一个同事建议我在Dynamic SQL中编写自定义包,我不会看到这个问题.我觉得很难相信,因为第三方软件包不依赖于我的自定义软件包,编译软件包应该保持编译,无论如何.
-谢谢
如何使用逻辑运算符来确定某个位是否已设置,或者是唯一的位移位?
我发现这个问题使用了位移,但我认为我可以AND超出我的价值.
对于某些上下文,我正在从Active Directory中读取值并尝试确定它是否为架构基础对象.我认为我的问题是语法问题,但我不确定如何纠正它.
foreach (DirectoryEntry schemaObjectToTest in objSchema.Children)
{
var resFlag = schemaObjectToTest.Properties["systemFlags"].Value;
//if bit 10 is set then can't be made confidential.
if (resFlag != null)
{
byte original = Convert.ToByte( resFlag );
byte isFlag_Schema_Base_Object = Convert.ToByte( 2);
var result = original & isFlag_Schema_Base_Object;
if ((result) > 0)
{
//A non zero result indicates that the bit was found
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我查看调试器时:
resFlag是object{int}和,值是0x00000010.
isFlag_Schema_Base_Object是的0x02
根据http://rake.rubyforge.org/files/doc/rakefile_rdoc.html,您可以创建一个接受参数并具有先决条件的任务:
task :name, [:first_name, :last_name] => [:pre_name] do |t, args|
Run Code Online (Sandbox Code Playgroud)
但是如果:pre_name是一个也接受参数的任务呢?将参数传递给它时的语法是什么:pre_name用作先决条件?
我正在添加使用android的共享意图从我的应用程序分享分数的功能:
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "My Score");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "I scored "+score+" on "+difficultyString+" difficulty.");
context.startActivity(Intent.createChooser(shareIntent, "Share your score"));
Run Code Online (Sandbox Code Playgroud)
当我从选择器中选择Facebook时,它会转到m.facebook.com并说"您的链接无法共享".这里出了什么问题?
document.getElementsByTagName('a').item(0)
和
document.getElementsByTagName('a')[0]
将返回相同的结果......
前者比后者快吗?
我想使用 XSLT 替换 HTML 中 href 标签的值。例如:如果锚标记是<a href="/dir/file1.htm" />,我想像这样替换 href 值:<a href="http://site/dir/file1.htm" />。关键是我想用绝对值替换所有相对网址。
我想对 HTML 内容中的所有锚标记执行此操作。如何使用 XSLT 执行此操作?
谢谢。
编辑:这是针对 Google 设备的。我在框架中显示结果,但链接在缓存页面中不起作用。它以地址栏 URL 作为根。这里的 HTML 是字符串的形式,它根据条件显示 HTML。有人可以建议一种方法来替换字符串中的所有 href 标签吗?
有时在执行中我在尝试释放内存时在VS2010中收到此错误消息:
Windows在[APPNAME] .exe中触发了断点.
这可能是由于堆的损坏,这表示[APPNAME] .exe或它已加载的任何DLL中的错误.
这也可能是由于用户在[APPNAME] .exe具有焦点时按下F12.
输出窗口可能包含更多诊断信息.
这意味着堆或指针有问题.
我的问题是,当我的应用程序构建为发行版时,此错误会崩溃.
此外,这只是一个更大应用程序的模块,当崩溃的时候,这种情况发生了变化.
我希望能够处理这个错误.
来自msdn的"免费":
如果在释放内存时发生错误,则会根据操作系统中有关故障性质的信息设置errno.有关更多信息,请参阅errno,_doserrno,_sys_errlist和_sys_nerr.
有一个errno_t _get_errno( int * pValue );返回错误代码的函数.
如果我按上面显示的错误消息继续按此函数返回错误代码.使用此代码,我可以检测错误,创建调用堆栈并轻轻退出我的函数.
是否有任何编译器开关或什么来防止应用程序在免费失败时崩溃并允许我以我的方式退出?
我想每个人偶尔遇到这个问题:你有两个表有自动编号需要合并的主键.使用自动编号主键有利于说应用程序生成的密钥有很多很好的理由,但与其他表合并必然是最大的缺点之一.
出现的一些问题是重叠的id和不同步的外键.我想听听你解决这个问题的方法.我总是遇到问题,所以如果有人有某种通用的解决方案,我很好奇.
- 编辑 -
在回答建议使用guid或其他非数字键的答案时,有些情况事先提醒使用自动编号键(后来你后悔),或者你正在接管其他人的项目,或者你得到一些你必须使用的遗留数据库.所以我真的在找一个你无法控制数据库设计的解决方案.