看到这个main:
int main(void)
{
int i;
int ch;
char str[512];
fgets(str, sizeof str, stdin);
for (i = 0; i <= (strlen(str)); i++)
{
if (str[i] != '\0' && str[i] != '\n')
{
int num = atoi(&str[i]);
printf("%d\n", num);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望得到来自用户的数字并获得所有数字,而不是任何spaces或tabs.
例如:
输入1 2 3.但在这种情况下这输出:
1
2
2
3
3
Run Code Online (Sandbox Code Playgroud)
那么,为什么我收到2并3两次?
我有一个数组的数组.我需要找到2个数字之间的最大差异,但最大数字在数组中的最小数字之前.
public static int maximalDrop (int [] a)
Run Code Online (Sandbox Code Playgroud)
例如:
对于数组5,21,3,27,12,24,7,6,4,结果将是23(27 - 4)
对于阵列5,21,3,22,12,7,26,14,结果将是18(21-3)
我的解决方案是取数组中的第一个元素(这个数字将是大的)并检查数字和数组中所有其他数字之间的差异,之后做同样的事情,但是数组中的下一个数字和当然比较差异并返回最大的一个.我的解决方案是O(n²)我可以少做那件事吗?
我试图理解继承概念,我有一个小问题.
我有两个A和B类:
public class B extends A
{
public B()
{
System.out.println ("B");
}
public void arik ()
{
System.out.println("Arik_B");
}
public void yosef ()
{
System.out.println ("Yosef");
}
public void superYosef()
{
super.yosef();
}
}
public class A
{
public A()
{
System.out.println ("A");
}
public void arik ()
{
System.out.println ("Arik_A");
}
public void yosef ()
{
arik();
}
}
Run Code Online (Sandbox Code Playgroud)
主要:
A ab = new B();
((B) ab).superYosef();
Run Code Online (Sandbox Code Playgroud)
该行将A ab = new B();打印AB,这很清楚.但行((B) ab).superYosef();打印 …
所以我使用此代码添加Key registry 以在启动时自动打开我的应用程序:
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
Assembly curAssembly = Assembly.GetExecutingAssembly();
key.SetValue(curAssembly.GetName().Name, curAssembly.Location);
Run Code Online (Sandbox Code Playgroud)
所以现在我希望能够删除此选项,以便将其添加到应用程序用户定义中,以便我搜索RemoveKey类似的内容。
有什么建议 ?