본문 바로가기

자바 JAVA

배열을 이용한 예제풀이 2 - 자바 기초

  문제) 4자리 이하의 10개의 정수를 입력받아 짝수중 가장 큰 값과 홀수중 가장 작은 값을 출력하는 프로그램 

입력예) -5 10 -8 55 6 -31 12 -24 61 2
출력예) -31 12

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int[] n = new int[10];
		int i, max = -10000, min = 10000;

		for( i=0; i<10; i++)
		{
			n[i] = scn.nextInt();

			if(n[i]%2!=0)
			{
				if(n[i]<min)
				{
					min = n[i];
				}
			}
			else
			{
				if(n[i]>max)
				{
					max = n[i];
				}
			}
		}

		System.out.print(min+" "+max);
	}
}

  문제) 10명의 컴퓨터 정수를 입력받아 배열에 저장하고 총점과 평균을 구하여 출력하는 프로그램을 작성 

(평균은 소수 첫째자리까지 출력)
입력예) 95 100 88 65 76 89 58 93 77 99
출력예)

총점 : 840
평균 : 84.0

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);
		int[] scr = new int[10];

		int i, sum = 0, cnt = 0;

		for( i=0; i<scr.length; i++)
		{
			scr[i] = scn.nextInt();

			sum += scr[i];
			cnt++;
		}

		System.out.println("총점 : "+sum);
		System.out.printf("평균 : %.1f",(double)sum/cnt);
	}
}

  문제) 5개의 정수를 {95, 75, 85, 100, 50}로 초기화하고 오름차순으로 정렬하는 프로그램 

출력예) 50 75 85 95 100

 

package sample;

public class Sample
{
	public static void main(String[] args)
	{
		int[] n = new int[]{95, 75, 85, 100, 50};

		int i, j, tmp;

		for( i=0; i<n.length-1; i++)
		{
			for( j=i+1; j<n.length; j++)
			{
				if(n[i]>n[j])
				{
					tmp = n[i];
					n[i] = n[j];
					n[j] = tmp;
				}
			}
		}

		for( i=0; i<n.length; i++)
		{
			System.out.print(n[i]+" ");
		}
	}
}

  문제) 10개의 정수를 입력받아 배열에 저장한후 내림차순으로 정렬하는 프로그램 

입력예) 95 100 88 65 76 89 58 93 77 99
출력예) 100 99 95 93 89 88 77 76 65 58

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int[] a = new int[10];
		int i, j, idx = 0, val = 0;

		for( i=0; i<a.length; i++)
		{
			a[i] = scn.nextInt();
		}

		for( i=0; i<a.length-1; i++)
		{
			val = a[i];

			for( j=i+1; j<a.length; j++)
			{
				if(val<a[j])
				{
					idx = j;
					val = a[j];
				}
			}

			if(val!=a[i])
			{
				a[idx] = a[i];
				a[i] = val;
			}
		}

		for( i=0; i<a.length; i++)
		{
			System.out.print(a[i]+" ");
		}
	}
}

  문제) 100개 이하의 정수를 입력받다가 0이 입력되면 0을 제외하고 그때까지 입력받은 개수를 출력한 후 입력받은 정수를 차례로 출력하되 그 수가 홀수이면 2배한 값을 짝수인 경우에는 2로 나눈 몫을 출력하는 프로그램 

입력예) 8 10 5 15 100 0
출력예)

5
4 5 10 30 50

 

package sample;
import java.util.*;

public class Sample
{
	public static void main(String[] args)
	{
		Scanner scn = new Scanner(System.in);

		int[] a = new int[100];
		int[] result = new int[a.length];
		int i, cnt = 0;

		for( i=0; i<a.length; i++)
		{
			a[i] = scn.nextInt();

			if(a[i]==0)
			{
				break;
			}

			if(a[i]%2==0)
			{
				result[i] = a[i]/2;
			}
			else
			{
				result[i] = a[i]*2;
			}

			cnt++;
		}

		System.out.println(cnt);
        
		for( i=0; i<cnt; i++)
		{
			System.out.print(result[i]+" ");
		}
	}
}