我正在使用其中一种algorithm,但结果非常糟糕。 我实现了wikialgorithm 在Java中(代码如下)。 x(0)是points.get(0) , y(0)是values[points.get(0)] , α是alfa , μ是mi 。 其余部分与wiki伪代码相同。 public void createSpline(double[] values, ArrayList<Integer> points){ a = new double[points.size()+1]; for (int i=0; i <points.size();i++) { a[i] = values[points.get(i)]; } b = new double[points.size()]; d = new double[points.size()]; h = new double[points.size()]; for (int i=0; i<points.size()-1; i++){ h[i] = points.get(i+1) – points.get(i); } […]
我正在创build一个WP 8.1 Silverlight应用程序。 我有一个string名称的ObservableCollection ,它被设置为ListBox的ItemsSource 。 ListBox中button的名称。 然后我想从ListBox提取button,但返回值是stringtypes。 xaml代码是: <ListBox x:Name="Game_ScrollViewer_online" Margin="41,104,128,6" SelectedValuePath="Current_game_button"> <ListBox.ItemTemplate> <DataTemplate> <Button x:Name="Current_game_button" Content="{Binding}" HorizontalAlignment="Center" Height="80" Margin="-14,6,-15,0" VerticalAlignment="Top" Width="210" Template="{StaticResource Button_CurrentLayout1}" RenderTransformOrigin="0.5,0.5" Foreground="#FFCBECCB" FontFamily="Times New Roman" Click="LoadGame_online" FontSize="16"> </Button> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 然后我想提取button元素: for (int i = 0; i < Game_ScrollViewer_online.Items.Count; i++) { var tempType = Game_ScrollViewer_online.Items[i].GetType(); Button tempBut = (Game_ScrollViewer_online.Items[i] […]
此代码在数组声明期间产生分段错误。 我很困惑,为什么会发生这种情况。 我故意select2000000000作为一个值,因为它低于2 ^ 31,可以适应一个整数variables。 int main() { int nums_size = 2000000000; int nums[nums_size]; int i; for(i = 0; i < nums_size; i++) { nums[i] = i; } return 0; }
我有这样的C ++文件 #ifndef _MOVE_H #define _MOVE_H class Move { int x, y; public: Move(int initX = 0, int initY = 0) : x(initX), y(initY) {} int getX() { return x; } void setX(int newX) { x = newX; } int getY() { return y; } void setY(int newY) { y = newY; } }; #endif […]
我是C的初学者。请不要介意我的问题是否是跛脚。 在我编写的这个程序中,当我第一次使用'for'循环时,我期望只有3个值被存储在一个数组中,但是它存储了4个值,并且在下一个for循环中如预期的那样显示了3个值。 我的问题是为什么在第一个“for”循环中需要4个值而不是3个? #include<stdio.h> void main() { int marks[3]; int i; for(i=0;i<3;i++) { printf("Enter a no\n"); scanf("%d\n",(marks+i)); } for(i=0;i<3;i++) { printf("%d\n",*(marks+i)); } }
我正在尝试将虚拟键码映射到字符。 我的代码使用ProcessCmdKey来监听WM_KEYDOWN,这使我可以访问按下的键。 例如,当我按单引号,我得到一个222的关键,我想它映射到keychar 39代表…你猜对了…单引号。 我的开发环境是:.net Framework 2.0 – UserControl放置在很多地方 你知道这个问题的答案吗?
我一直在学习C#,并试图理解lambda。 在下面的这个示例中,它打印出十次十次。 class Program { delegate void Action(); static void Main(string[] args) { List<Action> actions = new List<Action>(); for (int i = 0; i < 10; ++i ) actions.Add(()=>Console.WriteLine(i)); foreach (Action a in actions) a(); } } 显然,lambda后面的生成类正在存储对int ivariables的引用或指针,并且每次循环迭代时都将相同的引用分配一个新值。 有没有办法强制lamda抓取一个副本,而不是像C ++ 0x语法 [&](){ … } // Capture by reference 与 [=](){ … } // Capture […]
C标准库中的strchr函数在一个string中查找char ,但是其签名对于search字符采用int 。 在我发现的这两个实现中,实现将此int转换为char : char *strchr(const char *s, int c) { while (*s != (char)c) if (!*s++) return 0; return (char *)s; } char *strchr(const char *s, int c) { while (*s && *s != (char)c) s++; if (*s == c) return (char *)s; return NULL; } 有谁知道为什么? 为什么不把一个char作为参数?
最近看到有人赞扬另一位用户使用sizeof var而不是sizeof(type)。 我一直认为这只是一种风格的select。 有什么重大的区别? 举例来说,f和ff的行被认为比g和gg的行更好: typedef struct _foo {} foo; foo *f = malloc(count * sizeof f); foo *g = malloc(sizeof(foo) * count); foo **ff = malloc(count * sizeof *ff); foo **gg = malloc(sizeof(foo*) * count); 在我看来,第一套只是一个风格问题。 但是在第二对线中,额外的第二个*很容易被混淆为乘法。
我正在尝试编写一个基本上将string数组转换为string数组的函数,其中数组中的所有双精度值都被舍入为我设置的小数位数。 在数组中也可以有string,根本没有双精度值。 string[,] values = new string[1, 3]; values[0, 0] = "hello"; values[0, 1] = "0.123"; values[0, 2] = "0,123"; int decimalPlaces = 2; double tmp; string format = "F" + decimalPlaces.ToString(); IFormatProvider provider = CultureInfo.InvariantCulture; for (int i = 0; i < values.GetLength(0); i++) { for (int j = 0; j < values.GetLength(1); j++) […]