为什么运行出来没有东西char a='上'; int arr[]={1-15}; for (int i = 0; i < 5; i++) { for(int i1=4;i1<=0;i1--){ System.out.println(a); } }
时间: 2023-05-24 20:04:23 浏览: 57
代码中有几个问题导致程序没有输出:
1. 变量i的自增语句i++漏掉了,导致i一直是0,内循环永远不会执行。
2. int arr[]={1-15}这句代码定义了一个长度为1的整型数组,且数组中只有一个元素,值为-14。这个数组在程序中没有被使用。
3. 内循环中的System.out.println(a)语句会输出字符'a',而不是变量a所代表的中文字符'上'。这是因为字符字面量默认是用ASCII码表示的,而ASCII码中没有中文字符。
下面是修改后的代码,可以正确输出5行中文字符'上':
```java
char a ='上';
for (int i = 0; i < 5; i++) {
for (int i1 = 4; i1 >= 0; i1--) {
System.out.print(a);
}
System.out.println();
}
```
修改的内容包括:
1. 把外循环中的i++加上。
2. 删除无用的数组定义语句。
3. 把内循环中的println改为print,避免输出后自动换行。
4. 在外循环结束后增加一句println,使输出的5行字符分别占据一行。
相关问题
int sz = sizeof(arr)/ sizeof(arr[0])
这段代码的作用是计算数组arr中元素的个数。其中,sizeof(arr)返回数组arr所占用的总字节数,sizeof(arr)返回数组arr中单个元素所占用的字节数。因此,sz = sizeof(arr) / sizeof(arr)的结果就是数组arr中元素的个数。这个方法可以用于任何类型的数组,包括char、int、long、double等等。
```c++
#include <iostream>
using namespace std;
int main() {
int arr[] = {1, 2, 3, 6, 4, 8, 9, 1, 3};
int sz = sizeof(arr) / sizeof(arr[0]);
cout << "数组arr中元素的个数为:" << sz << endl;
return 0;
}
```
int char[8] ; char[i]=i;
这段代码有语法错误。应该是`int arr[8];`表示定义一个大小为8的整型数组。然后可以使用循环语句将数组中的元素初始化为对应的下标,代码如下:
```
int arr[8];
for(int i=0; i<8; i++){
arr[i] = i;
}
```
这样数组中的元素就分别为0、1、2、3、4、5、6、7。注意数组下标从0开始。