如何仅显示第一列和第一行?

时间:2018-07-17 15:04:18

标签: java

我创建了一个乘法表。但是,它无法显示我的代码的第一行和第一列。通过循环甚至可以实现吗?先生是我的代码:

int a;
int b;

for (a=1; a<=3; a++)
{
    for (b=1; b<=3; b++)
    {
        System.out.print(a*b + " ");
    }
    System.out.println();
}

此代码的输出是:

1 2 3
2 4 6
3 6 9

但是,我只希望在行和列上显示123。这可以实现吗?

所需的输出:

1 2 3
2
3

4 个答案:

答案 0 :(得分:0)

一种基本方法是知道外环在哪里,并根据需要的结果进行打印。

public class StackOverflow {
    public static void main(String[] args) {
        int a;
        int b;

        for (a=1; a<=3; a++)
        {
            // Only print the first row
            if (a == 1) {
                for (b=1; b<=3; b++)
                {
                    System.out.print(a*b + " ");
                }
                // Ends the first row 
                System.out.println("");
            } else {
                // Prints the rest of the first column
                System.out.println(a);
            } 
        }
    }
}

结果:

1 2 3 
2
3

更新

如果我理解您的评论,这是一种仅需一个循环的方法。假定行的大小将等于列的大小。这意味着您将显示的位数将是一个奇数(rowColLength * 2 - 1),这会使第一个位数成为枢轴点。

public class StackOverflow {
    public static void main(String[] args) {
        int a = 0;
        int rowColLength = 3;
        int numberOfDigits = rowColLength * 2 - 1;

        for (int i = 0; i < numberOfDigits; i++) {
            if (i < rowColLength) {
                // Prints the first row
                System.out.print(++a + " ");
            } else if (i == rowColLength){
                // Decrements the last number from the first row 
                // to continue the column count for printing
                System.out.print("\r\n" + --a);
            } else {
                // Prints the rest of the column
                System.out.print("\r\n" + ++a);
            }
        }
    }
}

结果:

1 2 3 
2
3

答案 1 :(得分:0)

我认为您希望限制上限。 可读性更好的是:

protected void input_source_TextChanged(object sender, EventArgs e)
{
    string source = input_source.Text;

    using (
        SqlConnection com = new SqlConnection())
        {
        //SQL Server
        com.ConnectionString = lr_sqlserver;

        //Conncection establish
        com.Open();

        //Get SQL Information
        SqlCommand select = new SqlCommand("select target from " + selected_table + " where source = @param", com);
        select.Parameters.AddWithValue("@param", source);
        string result;
        result = (string)select.ExecuteScalar();

        if (result != null)
        {
            input_target.Text = result;
        }
    }
}

int rows = 3; // 1? int columns = 10; // 1? for (int row = 1; row <= rows; ++row) { for (int column = 1; column <= columns; ++column) { System.out.printf("%3d", row * column); } System.out.println(); } 打印数字,并在左边最多3个空格处填充数字。

如果要在Excel中设置标题行和列,

printf

答案 2 :(得分:0)

在2个不同的循环中打印标题和列标签:

  int a;
  int b;

  // Print header label
  for (b=1; b<=3; b++) {
    System.out.print(b + " ");
  }
  System.out.println();
  // Print column label
  for (b=2; b<=3; b++) {
    System.out.println(b);
  }

输出:

1 2 3 
2
3

答案 3 :(得分:-1)

有几种可能性,例如,您可以将结果保存到变量中,如果大于3,则不打印结果。

import numpy as np 
from lmfit import Model, Parameters
from lmfit.models import GaussianModel
import matplotlib.pyplot as plt

def gauss(x, amp, cen, sigma):
   "basic gaussian"
    return amp*np.exp(-(x-cen)**2/(2.*sigma**2))

x1= np.arange(0.,100.,0.1)
x2= np.arange(0.,100.,0.1)
y1= gauss(x1, 1.,50.,5.)+ np.random.normal(size=len(x1), scale=0.01)
y2= gauss(x2, 0.8,48.4,4.5)+ np.random.normal(size=len(x2), scale=0.01)

mod= GaussianModel()
params= mod.make_params()

params['amplitude'].set(1.,min=0.01,max=100.)
params['center'].set(1.,min=0.01,max=100.)
params['sigma'].set(1.,min=0.01,max=100.)

result= mod.fit(np.array([y1,y2]), params,method='basinhopping',
x=np.array([x1,x2]))

print(result.fit_report(min_correl=0.5))

fig, ax = plt.subplots()

plt.plot(x1,y1, lw=2, color='red')
plt.plot(x2,y2, lw=2, color='orange')
plt.plot(x1,result.eval(x=x1), lw=2, color='black')

plt.show()