for(int i=0;i<=item_num-1;i++) { str=br.readLine(); String[] Array=str.split(" "); int v=Integer.valueOf(numbersArray[0]); int w=Integer.valueOf(numbersArray[1]); item[i][0]=v; item[i][1]=w; } br.close();只读取同一行
时间: 2024-03-14 10:45:52 浏览: 15
在这段代码中,您使用的是 `numbersArray` 而不是 `Array` 中的值。因此,每次循环都会将第一行的相同值分配给 `item[i][0]` 和 `item[i][1]`。可以尝试将 `numbersArray` 更改为 `Array`,如下所示:
```
for (int i = 0; i <= item_num-1; i++) {
str = br.readLine();
String[] Array = str.split(" ");
int v = Integer.valueOf(Array[0]);
int w = Integer.valueOf(Array[1]);
item[i][0] = v;
item[i][1] = w;
}
br.close();
```
这应该会将每一行的值正确地赋值给 `item` 数组。
相关问题
将如下代码转成C#语言代码import random import math def quick_mod(num1, num2, num3): result = 1 while num2 > 0: if (num2 & 1) == 1: result = (result * num1) % num3 num1 = (num1 * num1) % num3 num2 = num2 >> 1 return result m = int(input("请输入您要检测的数m:")) k = int(input("请输入安全参数k: ")) i = 1 while i <= k: a = random.randint(2, m - 2) print("k = " + str(i) + "时:生成的随机数为" + str(a), end=",") g = math.gcd(a, m) r = quick_mod(a, m - 1, m) if g != 1: print("(%d,%d) = %d,该数为合数!" % (a, m, g)) break elif r != 1: print("%d**%d(mod %d) = %d,该数为合数!" % (a, m - 1, m, r)) break else: print("m = " + str(m) + "可能为素数!") i += 1 if i == k + 1: print("\n因此,该数可能为素数,且概率为" + str((1 - 1 / (2 ** k)) * 100) + "%")
以下是将给出的 Python 代码转换为 C# 代码:
```csharp
using System;
class Program
{
static int QuickMod(int num1, int num2, int num3)
{
int result = 1;
while (num2 > 0)
{
if ((num2 & 1) == 1)
{
result = (result * num1) % num3;
}
num1 = (num1 * num1) % num3;
num2 = num2 >> 1;
}
return result;
}
static void Main(string[] args)
{
Random rand = new Random();
int m, k;
Console.Write("请输入您要检测的数m:");
m = int.Parse(Console.ReadLine());
Console.Write("请输入安全参数k: ");
k = int.Parse(Console.ReadLine());
int i = 1;
while (i <= k)
{
int a = rand.Next(2, m - 2);
Console.Write("k = " + i + "时:生成的随机数为" + a + ",");
int g = (int)MathExt.Gcd(a, m);
int r = QuickMod(a, m - 1, m);
if (g != 1)
{
Console.WriteLine("(" + a + "," + m + ") = " + g + ",该数为合数!");
break;
}
else if (r != 1)
{
Console.WriteLine(a + "^" + (m - 1) + "(mod " + m + ") = " + r + ",该数为合数!");
break;
}
else
{
Console.WriteLine("m = " + m + "可能为素数!");
i++;
}
}
if (i == k + 1)
{
Console.WriteLine("\n因此,该数可能为素数,且概率为" + ((1 - 1 / Math.Pow(2, k)) * 100) + "%");
}
}
}
class MathExt
{
public static int Gcd(int a, int b)
{
while (b != 0)
{
int tmp = b;
b = a % b;
a = tmp;
}
return a;
}
}
```
需要注意的是,在 C# 中没有内置的 `gcd()` 函数,因此需要自己实现一个辗转相除法求最大公约数的函数。此外,在 C# 中使用 `Random` 类来生成随机数,而不是 Python 中的 `random` 模块。此外,C# 中的字符串拼接使用 `+` 符号,而不是 Python 中的 `%` 符号。另外,C# 中的幂运算使用 `Math.Pow()` 函数,而不是 Python 中的 `**` 符号。
编写一个程序 如果名字为Exercisel.tx的文件 则创建1该文件 使用文本I/O将随机产生的100各整数写入文件 文件中的整数用空格分开 然后从文件中读回数据并以升序显示 用java语言
好的,以下是Java语言的代码实现:
```java
import java.io.*;
import java.util.*;
public class Exercise {
public static void main(String[] args) throws IOException {
// 创建文件
File file = new File("Exercisel.txt");
if (!file.exists()) {
file.createNewFile();
}
// 写入随机整数
PrintWriter writer = new PrintWriter(file);
Random random = new Random();
for (int i = 0; i < 100; i++) {
writer.print(random.nextInt(100) + " ");
}
writer.close();
// 读取并排序整数
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
List<Integer> list = new ArrayList<>();
while (line != null) {
String[] arr = line.split(" ");
for (String str : arr) {
list.add(Integer.parseInt(str));
}
line = reader.readLine();
}
reader.close();
Collections.sort(list);
// 输出升序整数
System.out.println("升序整数:");
for (int num : list) {
System.out.print(num + " ");
}
}
}
```
运行程序后,将在项目目录下生成Exercisel.txt文件,并输出升序的100个随机整数。