进阶篇
Random:用于产生一个随机数
导包(~=头文件):import java.util.Random
{
Random r/*变量*/=new Random(); //创建对象
int number/*变量*/=r/*同上变量*/.nextInt(10); //获取随机数,获取范围[0,10)
注:int i =r.nextInt(10)+2; //表示区间向右移动两个单位,即[2,12)
}
数组:用于存储多个相同类型数据的存储模型
1.数组的定义: int [] arr (arr为数组名) 或 int arr []
2.动态初始化:int [] arr=new int [3] ; (new:为数组申请内存空间)
System.out.println(arr);//输出数组地址
System.out.println(arr[1]);//访问数组内容(arr[0]为首项)
3.静态初始化:int [] arr =new int [] {数据1,数据2,数据3…};
简化格式:int [] arr={数据1,数据2,数据3…};
4.数组再初始化时,会为存储空间添加默认值
- 整数:默认值0
- 浮点数:默认值0.0
- 布尔值;默认值false
- 字符:默认值是空字符
- 引用数据类型:默认值是null
5.内存分配(由此看与C指针有相像之处)
6.数组的长度调用:arr.length
7.注意事项
- 索引越界:即访问超过数组长度的地址
- 空指针异常:访问的数组已经不再指向堆内存的数据。如数组内容为null
今天上实验课打机差点被一道看起来简单的题搞自闭了😭
还好最好写出来了
以下是我写的代码
#include<stdio.h>
int main(){
int n;
scanf("%d", &n);
char ch[100][100];
int x = (n + 1) / 2;
for (int i = 1; i <= x; i++)
{
for (int j = 1; j <= n; j++)
if (j >= x - (i - 1) && j <= x + (i - 1))
{
ch[i][j] = '*';
printf("%c", ch[i][j]);
}
else
printf(" ");
printf("\n");
}
for (int i = x + 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
if (j >= x - (n - i) && j <= x + (n - i))
{
ch[i][j] = '*';
printf("%c", ch[i][j]);
}
else
printf(" ");
printf("\n");
}
}
欢迎大佬指教