小编Kar*_*rma的帖子

为什么我们需要把*用于指针

当我突然想到指针只是一个存储变量的内存地址的变量时,我正在读指针,所以每个整数都应该作为指针.然后我创建了一个小程序,它发出警告,但它以某种方式工作.

int main()
{
    int i,j;
    i=3;
    j=&i;
    printf("%d\n%d\n%d",i,j,&i);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是

3
1606416600
1606416600
Run Code Online (Sandbox Code Playgroud)

那么,为什么要添加额外的*如果正常的int工作呢?

另一个问题是关于以下计划的输出

int main()
{
    int a[] = {1,2,3,4,5,6,7};
    int *i,*j;
    i=&a[1];
    j=&a[5];
    printf("%d\n%d\n%d",j,i,j-i);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

1606416580
1606416564
4
Run Code Online (Sandbox Code Playgroud)

为什么ji = 4而不是16?

c c++ pointers

5
推荐指数
2
解决办法
538
查看次数

旋转矩阵n次

当我陷入困境时,我正在解决HackerRank上的问题.

问题陈述

您将获得一个2D矩阵,a,维度为MxN,正整数为R.您必须将矩阵旋转R次并打印结果矩阵.旋转应沿逆时针方向旋转.

4x5矩阵的旋转由下图表示.请注意,在一次旋转中,您必须仅将元素移动一步(请参阅样本测试以获得更清晰). 在此输入图像描述

保证M和N的最小值是偶数.

输入

第一行包含三个空格分隔的整数,M,N和R,其中M是行数,N是矩阵中的列数,R是矩阵必须旋转的次数.然后是M行,其中每行包含N个空格分隔的正整数.这些M行代表矩阵.

产量

打印旋转的矩阵.

约束

2 <= M, N <= 300 
1 <= R <= 10^9 
min(M, N) % 2 == 0 
1 <= aij <= 108, where i ? [1..M] & j ? [1..N]'
Run Code Online (Sandbox Code Playgroud)

我试图做的是将圆圈存储在一维数组中.像这样的东西.

 while(true)
    {
        k = 0;
        for(int j = left; j <= right; ++j) {temp[k] = a[top][j]; ++k;}
        top++;
        if(top > down || left > right) break;

        for(int i = top; i <= down; ++i) {temp[k] = a[i][right]; ++k;}
        right--; …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm matrix

5
推荐指数
1
解决办法
2987
查看次数

计数排序:为什么我们需要以前的计数之和?

我正在阅读有关计数排序的算法,其中一个步骤是

计数排序

for(i = 1 to k) 
   c[i] = c[i]+c[i-1];
Run Code Online (Sandbox Code Playgroud)

为什么我们需要这一步?

为什么我们不能使用它

for(i = 0 to k)
    while(c[i]--)
        Output i/Use i as key.
Run Code Online (Sandbox Code Playgroud)

我想到的一个问题是,我们是否需要数据本身(可能就像引用特定索引的字符串一样)。

但是之后,我们可以使用2D向量。在这种方法中,我们将数据从0到99进行排序有什么不好的地方。

int a[100];
for(int i = 0 ; i < 100; ++i)
    a[i] = 0;
string s;
vector<vector<string>> data(100);
int temp;
for(int i = 0 ; i < n ; ++i){
    cin>>temp;
    a[temp]++;
    getline(cin,s);
    data[temp].push_back(s);
}

for(int i = 0 ; i < 100; ++i){
    int current = 0;
    while(a[i]--){
        cout<<data[i][current]<<" ";
        ++current;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ sorting counting-sort

1
推荐指数
1
解决办法
889
查看次数

获取颜色值HEX代码android

嘿,我正在关注来自新浪的Android学习系列.我就是这个部分:http://www.youtube.com/watch?feature = player_embedded&v = QjQg8NkHGbw

现在,我想做的是在某处(代码或文件中)保存一些基本颜色,如红色,绿色等,并分配它们的十六进制代码.

就像用户在'edittext'中键入"red"一样,我希望将"red"的值存储为"#FF0000"(就像C++中的#define一样),依此类推蓝色,绿色等.

我已经熟悉C++中的文件处理,但这看起来完全不同.

我不知道如何存储本身就是字符串的字符串的值.

java android textview

0
推荐指数
1
解决办法
6731
查看次数

SetAdapter ListView中的NullPointerException

我真的很沮丧这个错误.我几乎不可能找到.

代码很简单.我正在尝试使用导航抽屉.

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<FrameLayout
    android:id="@+id/main_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
   />

<ListView
    android:id="@+id/navigationdrawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#111"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp" />
Run Code Online (Sandbox Code Playgroud)

要向ListView添加项目,我添加了一个字符串数组和string.xml

<resources>

<string name="app_name">Test</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>

<string-array name="Contents">
    <item>Calculator</item>
    <item>About Us</item>
</string-array>

</resources>
Run Code Online (Sandbox Code Playgroud)

然后在MainActivity.java中

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

String[] drawerListItems;
ListView drawerList;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    drawerListItems = getResources().getStringArray(R.array.Contents);
    drawerList = (ListView) findViewById(R.id.navigationdrawer);
    ArrayAdapter<String> aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,drawerListItems);
    drawerList.setAdapter(aa);
    setContentView(R.layout.navigation);
} …
Run Code Online (Sandbox Code Playgroud)

android

0
推荐指数
1
解决办法
89
查看次数

标签 统计

c++ ×3

android ×2

algorithm ×1

c ×1

counting-sort ×1

java ×1

matrix ×1

pointers ×1

sorting ×1

textview ×1