题目是:写一个函数,返回一个数组中所有元素被第一个元素除的结果

本文探讨了如何编写一个函数,该函数接收一个整数数组并返回数组中每个元素被首个元素整除后的结果。讨论了数组初始化、除数为零的情况及异常处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天研究一个关于函数的问题。编程之美中第一章提出的。
题目是:写一个函数,返回一个数组中所有元素被第一个元素除的结果
首先按照题意。写了这样一个函数
 public static int[] divide()
 {
  int[] a = {1,2,3,4,5,8,9};
  int[] b = {} ;
  for(int i =0;i<a.length;i++){
   b[i]=a[i]/a[0];
  }
  return b;
 }

好来运行~……报错

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
 at test.divide(test.java:17)
 at test.main(test.java:9)
- - 当执行第一环节的时候1/1就已经报错了。这是为什么呢~喔因为b我并没有给值,所以默b的length为0。

人家是0你非要给它值,当然会报错啦。
我换一种方式:
 public static int[] divide()
 {
  int[] a = {10,2,35,0,3,50,6,7,8};
  int b = a[0];
  for(int i =0;i<a.length;i++){
   a[i]=a[i]/b;
  }
  return a;
 }
嗯嗯嗯,这样就没有问题了~ = = 突然想起,如果除数为0会怎样呢。……会报错。
Exception in thread "main" java.lang.ArithmeticException: / by zero
 at test.divide(test.java:19)
 at test.main(test.java:9)
---

经过修改之后:

 public static int[] divide(int[] l)
 {
  int[] a = l;
  int b = a[0];
  for(int i =0;i<a.length;i++){
   try {
    a[i] = a[i] / b;
   } catch (Exception e) {
    a[i]=0;
   }
  }
  return a;
 }
好~ 无敌了。
顺便一说,我想只有白痴才会傻到这样写吧……注意一下细节嘛。。
a[i]=a[i]/a[0];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值