Java练习题9.1
1.输入6个整数,求出它们的和以及最大值并输出
- 方法一:
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex1 {
public static void main(String[] args) {
System.out.println("请输入6个整数:");
Scanner sc=new Scanner(System.in);
int n[]=new int[6];
int sum=0,i,max,i_max;
for(i=0;i<6;i++)
n[i]=sc.nextInt();
sum=n[0];
max=n[0];
i_max=0;
for(i=1;i<6;i++)
{
sum=sum+n[i];
if(n[i]>n[i_max])
{
i_max=i;
max=n[i];
}
}
System.out.println("最大值="+max);
System.out.println("和="+sum);
}
}
- 方法二:
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex1 {
public static void main(String[] args) {
System.out.println("请输入6个整数:");
Scanner sc=new Scanner(System.in);
int[] n=new int[6];
int max=0,sum=0;
for(int i=0;i<6;i++)
{
n[i]=sc.nextInt();
if(n[i]>max)
{
max=n[i];
}
sum+=n[i];
}
System.out.println("最大值="+max);
System.out.println("和="+sum);
}
}
2.输入一行字符,分别统计出英文字母、空格、数字和其它字符的个数。
- 方法1
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex2_1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();next:获取字符串,不包含空字符;nextLine:
int a=0,b=0,c=0,d=0;
int i;
char cs[]=s.toCharArray();
for(i=0;i<cs.length;i++)
if(cs[i]>='0'&&cs[i]<='9')
{
a++;
}
else if((cs[i]>='a'&&cs[i]<='z')||cs[i]>='A'&&cs[i]<='Z')
{
b++;
}
else if(cs[i]==' ')
{
c++;
}
else
{
d++;
}
System.out.println("数字的个数是"+a);
System.out.println("英文字母的个数是"+b);
System.out.println("空格的个数是"+c);
System.out.println("其他的个数是"+d);
}
}
- 方法二
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex2_2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();next:获取字符串,不包含空字符;nextLine:
int a=0,b=0,c=0,d=0;
int i;
char ch;
for(i=0;i<s.length();i++)
{
ch=s.charAt(i);
if(ch>='0'&&ch<='9')
{
a++;
}
else if((ch>='a'&&ch<='z')||ch>='A'&&ch<='Z')
{
b++;
}
else if(ch==' ')
{
c++;
}
else
{
d++;
}
}
System.out.println("数字的个数是"+a);
System.out.println("英文字母的个数是"+b);
System.out.println("空格的个数是"+c);
System.out.println("其他的个数是"+d);
}
}
3.有一个数列:1,1,2,3,5,8,13,21,34。。。。输出该数列的前20项(要求5个数一行)
package com.shangjiti.aoian;
public class Ex3 {
public static void main(String[] args) {
int ns[]=new int[20];
ns[0]=ns[1]=1;
for (int i=2;i<20;i++)
{
ns[i]=ns[i-1]+ns[i-2];
}
System.out.println("该数列的前20项为:");
for (int i=0;i<20;i++)
{
System.out.print(ns[i]+"\t");
if((i+1)%5==0)
System.out.println();
}
}
}
4.输入10个整数,使用冒泡排序和选择排序算法将10个数从小到大排列并输出。
- 冒泡排序
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex4_1 {
public static void main(String[] args) {
int a[]=new int[10];
Scanner x=new Scanner(System.in);
for(int i=0;i<a.length;i++)
a[i]=x.nextInt();
for(int i=0;i<a.length-1;i++)
for(int j=0;j<a.length-i-1;j++)
if(a[j]>a[j+1])
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
System.out.println("从小到大输出:");
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}
- 选择排序
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex4_2 {
public static void main(String[] args) {
System.out.println("请输入10个整数:");
int a[]=new int[10];
Scanner x=new Scanner(System.in);
for(int i=0;i<a.length;i++)
a[i]=x.nextInt();
for(int i=0;i<a.length;i++)
for(int j=i+1;j<a.length;j++)
if(a[i]>a[j])
{
int t=a[j];
a[j]=a[i];
a[i]=t;
}
System.out.println("从小到大输出:");
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}
5.有一个从小到大排列的数列:12,23,35,56,68。现输入一个100以内的整数,把它插入数列中,使其仍是从小到大排列
- 方法一:
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex5 {
public static void main(String[] args) {
System.out.println("插入之前为:12,23,35,56,68");
System.out.println("请输入一个100以内的整数:");
Scanner sc=new Scanner(System.in);
int i;
int[] a=new int[6];
a[0]=12;
a[1]=23;
a[2]=35;
a[3]=56;
a[4]=68;
a[5]=sc.nextInt();
for(i=0;i<a.length;i++)
{
int t=0;
if(a[5]<a[i])
{
t=a[i];
a[i]=a[5];
a[5]=t;
}
System.out.print(a[i]+" ");
}
}
}
- 方法2:
package com.shangjiti.aoian;
import java.util.Scanner;
public class Ex5_1 {
public static void main(String[] args) {
System.out.println("请输入一个100以内的整数:");
Scanner sc=new Scanner(System.in);
int i,j,x=sc.nextInt();
int a[]=new int[] {12,23,35,56,68,0};
for(i=0;i<=4;i++)
{
if(a[i]>x)
{
for(j=4;j>=i;j--)
a[j+1]=a[j];
a[i]=x;
break;
}
}
if(i==5)
a[i]=x;
for(i=0;i<=5;i++)
System.out.print(a[i]+" ");
}
}