我必须为学校项目排序数组中的字符串。我们的老师不允许我们使用array,sort()。 我必须使用2种排序方法,但它们不能很好地工作。
第一个返回每个值的两倍。即约翰,杰克,亚当,汤姆将返回亚当,亚当,杰克,杰克,约翰,约翰,汤姆,汤姆。
public static void sort() {
inputFileNames();//inputs list of names from a file.
for (int i = 0; i < size - 1; i++) {
for (int j = i + 1; j < size; j++) {
if (stArr[i].compareTo(stArr[j])>0) {
temp = stArr[i];
stArr[i] = stArr[j];
stArr[j] = temp;
}
}
}
display("The names are: ");// method to display array
System.out.println("");
}
第二种不是&#39;运行:
public static void bubbleSort() {
inputFileNames();
for (int i = size - 1; i >= 0; i--) {
for (int j = 0; j <= i; j++) {
if (stArr[j].compareTo(stArr[j+1])>0) {
temp = stArr[j];
stArr[j] = stArr[j + 1];
stArr[j + 1] = temp;
}
}
}
display("The names are: ");
System.out.println("");
}
输入和显示:
static void display(String heading) {
System.out.println(heading + "\n");
for (int i = 0; i < size; i++) {
System.out.println(stArr[i]);
}
}
static void inputFileNames() {
try {
Scanner scFile = new Scanner(new File("Names.txt"));
while (scFile.hasNext()) {
stArr[size] = scFile.nextLine();
size++;
}
} catch (FileNotFoundException ex) {
System.out.println("File not found.");
}
}
答案 0 :(得分:1)
DigitNumber = input ("Enter 7 different digit: ")
length=len(DigitNumber)
while length != 7:
print("Please type 7 digit codes.")
DN= input ("Enter 7 different digit: ")
if(length==7):
GTIN1=int(DigitNumber[0])
GTIN2=int(DigitNumber[1])
GTIN3=int(DigitNumber[2])
GTIN4=int(DigitNumber[3])
GTIN5=int(DigitNumber[4])
GTIN6=int(DigitNumber[5])
GTIN7=int(DigitNumber[6])
TOTALGTIN=int(GTIN1*3+GTIN2+GTIN3*3+GTIN4+GTIN5*3+GTIN6+GTIN7*3)
roundingup=round(TOTALGTIN, -1)
GTIN8 = int(roundingup - TOTALGTIN) % 10
print("The full valid 8-Digit GTIN-8 code is: "+str(DigitNumber)+str(GTIN8)
yes = set(['yes','y', 'ye'])
no = set(['no','n'])
choice = input("Would you like to validate your 8-digit GTIN-8code?")
if choice in yes:
Validate = input("Enter your 8 digit GTIN-8 number: ")
GTIN1=int(DigitNumber[0])
GTIN2=int(DigitNumber[1])
GTIN3=int(DigitNumber[2])
GTIN4=int(DigitNumber[3])
GTIN5=int(DigitNumber[4])
GTIN6=int(DigitNumber[5])
GTIN7=int(DigitNumber[6])
GTIN8=int(DigitNumber[7])
Validifying=int(GTIN1*3+GTIN2+GTIN3*3+GTIN4+GTIN5*3+GTIN6+GTIN7*3+GTIN8)
Check=Validifying%10
if(Validifying/10.).is_integer():
print("Your code is valid")
else:
print("Your 8 digit GTIN code is invalid.")
elif choice in no:
print ("Ok, thank you.")
exit(1)
else:
sys.stdout.write("Please respond with 'yes' or 'no'")
这是第一个代码的答案。我不擅长文件处理,所以你必须使用你的输入法。我知道Scanner这就是我在这里使用的原因。
在你的第二个例子中你的j循环是错误的(j = 0; j&lt; = i-1; j ++)。如果您的问题得到解决,请将其标记为答案