小编Chr*_*ker的帖子

用java绘制网格

我正在尝试使用 for 循环创建笛卡尔网格。以下是到目前为止我的代码的一部分;当我运行它时,它不会生成一系列线条,而是生成一个带有白色面板的窗口,这会大大减慢我的计算机速度。事实上,我必须启动任务管理器并结束任务,因为它甚至不会正常关闭。

public void paintComponent(Graphics g)
{
    int width = getWidth();
    int height = getHeight();
    super.paintComponent(g);

    int xstart=0;

    for(int i = 1; i <= 10; i = i++)
    {
        xstart = i*(width/10);
        g.drawLine(xstart, 0, xstart, height);
    }
}
Run Code Online (Sandbox Code Playgroud)

java grid draw

4
推荐指数
1
解决办法
6万
查看次数

方案缺点不会采用两个数字参数

我已经看到许多利弊以两个数字作为参数的实例,并且我被告知在实验室中将传递两个数字作为参数传递给cons,但每当我这样做时,我得到以下错误:

> (cons 1 2)
cons: second argument must be a list, but received 1 and 2
Run Code Online (Sandbox Code Playgroud)

如果我执行以下操作,则会收到相同的错误:

> (cons '1 '2)
cons: second argument must be a list, but received 1 and 2
Run Code Online (Sandbox Code Playgroud)

我对Scheme很新,我不明白为什么会这样.

scheme list cons racket

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

Ada"编译单元预期"错误

我正在尝试声明一个新类型,所以我可以将一个数组作为参数传递给一个过程.它看起来像这样:

type Arr_Type is array(1..1000) of String;

procedure proceed(Arg1: in Arr_Type) is
begin
<program body>
end
Run Code Online (Sandbox Code Playgroud)

每当我尝试编译它时,我都会收到"编译单元预期"错误.如果我删除类型声明,我不再得到错误,但我显然需要它,如果我把它放在文件中的任何其他位置我会收到错误.我对Ada来说有点新鲜,所以我不完全确定这里发生了什么.

compilation ada

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

Switch语句总是选择相同的情况

对于以下switch语句:

如果选择0-9之间的值,则输出正常.如果选择大于9的值,则输出始终为小写z.

for (int i = 0; i < 3; i++)
    {
        random[i] = randomnumber.nextInt(36);
        if (random[i] > 9)
        {
            switch(random [i])
            {
            case 10: character[i] = "A";
            case 11: character[i] = "B";
            case 12: character[i] = "C";
            case 13: character[i] = "D";
            case 14: character[i] = "E";
            case 15: character[i] = "F";
            case 16: character[i] = "G";
            case 17: character[i] = "H";
            case 18: character[i] = "I";
            case 19: character[i] = "J";
            case 20: character[i] = "K";
            case 21: …
Run Code Online (Sandbox Code Playgroud)

java

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

C - 为什么我的int值非常大?

我将尝试在代码片段中提供足够的信息,因为大部分内容与问题无关.如果您需要更多代码,请与我们联系.

我试图使用fscanf从txt文件中读取以制作矩阵.该文件的格式如下:

(整数声明行数)

(整数声明列数)

(value1,value2,......,value n)

.

.

(最后一行值)

我使用以下代码(修剪不相关性)来获取矩阵中的行数和列数:

FILE* fp;
int row,col;    

row = (int) malloc(sizeof(int));
col = (int) malloc(sizeof(int));

fp = fopen(fname, "r");
fscanf(fp, "%d %d", row, col);
printf("%d %d \n", row, col);
Run Code Online (Sandbox Code Playgroud)

打印出的值有所不同,但总是非常大,即"5977072 5977088"或"4797424 4797440".我对C很陌生,很想知道为什么会这样.我的两个假设如下:

  1. 为值分配的内存包含这些大数字,并且由于某种原因,row和col未被设置为矩阵txt文件中的值.

  2. 正在打印的是行和列的地址.

如果是场景1的情况,那么在设置row和col的值时我做错了什么?是否有一点我应该操纵指针?

c integer

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

使用等于方法的否定

我正在尝试设置while循环,如下所示:

while(!data.equals("String");
Run Code Online (Sandbox Code Playgroud)

每当我运行此代码时,我都会收到NullPointerException.为什么是这样?

如果我将代码更改为:

while(data.equals("String");
Run Code Online (Sandbox Code Playgroud)

我没有这样的例外,所以数据中必须有数据,对吗?

编辑:在评论员的要求下添加真实代码.

以下代码是一种尝试将中缀表示法转换为后缀表示法的方法.

    public static Queue infixConvert (LinkedListTest infix){
    Stack stack = new Stack();
    Queue postfix = new Queue();

    while(infix.head.data != "EOF"){

        if(isNumber(infix.head.data)){
            postfix.insert(infix.head.data);
            System.out.println("Insert Queue");
            System.out.println("Operator");
        }

        else if (infix.head.data.equals("(") || infix.head.data.equals(")")){
            if(("(").equals(infix.head.data)){
                stack.push(infix.head.data);
                System.out.println("Open paren");
            }
            else {
                infix.delete(")");
                while(!"(".equals(stack.head.data)){
                    stack.delete(")");
                    postfix.insert(stack.pop());
                    System.out.println("Insert Queue");
                }
                stack.delete("(");
                System.out.println("Close Paren");
            }
        }

        else{
            if(!(highPrec(stack.head.data, infix.head.data))){
                stack.push(infix.head.data);
                System.out.println("Push onto Lesser Operand");
            }

            else if(highPrec(stack.head.data, infix.head.data)){
                while(stack.head.data != null){
                    if (stack.head.data != "("){
                        postfix.insert(stack.pop());
                    }
                    else break; …
Run Code Online (Sandbox Code Playgroud)

java equals nullpointerexception while-loop

-2
推荐指数
1
解决办法
1191
查看次数

标签 统计

java ×3

ada ×1

c ×1

compilation ×1

cons ×1

draw ×1

equals ×1

grid ×1

integer ×1

list ×1

nullpointerexception ×1

racket ×1

scheme ×1

while-loop ×1