scanner库 的使用
(1)导入库
import java.util.Scanner
(2)初始化
Scanner scan =new Scanner(System.in);
(3)输出
数据类型 | 输出函数 |
---|---|
boolean | nextBoolean() |
byte | nextByte() |
double | nextDouble() |
float | nextFloat() |
int | nextInt() |
String | nextLine() |
(4)简单输出值
System.out.println("hello");
(5)使用Scanner库输出变量
int a = scan.nextInt();
int b = scan.nextInt();
System.out.println(a);
System.out.println(b);
//输入 2 4 输出 2 /n 4
//输入 2 /n 4 输出 2 /n 4
//nextInt()函数是以空格或者换行符作为分割的
(6)使用Scanner库输入多个变量并且存放数组
a 数组定义
//数组的定义分动态定义和静态定义
int[] a = new int[n];
// n代表n个元素 new是关键字,定义某些东西时需要写
int [] ids = new int []{1001,1002,1003};
// 代表ids里面有 1001,1002,1003 3个元素
b 输入多个变量并且存放数组
Scanner scan =new Scanner(System.in);
int n = scan.nextInt();
int[] a = new int[n];
for(int i=0;i<n;i++)
{
a[i]=scan.nextInt();
}
例题
题目描述
给出一个长度为 nn 的序列 aa,选出其中连续且非空的一段使得这段和最大。
输入格式
第一行是一个整数,表示序列的长度 n。
第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 a[i]。
输出格式
输出一行一个整数表示答案。
输入
7
2 -4 3 -1 2 -4 3
输出
4
java解法
package first_one;
import java.util.Scanner;
public class first {
public static void main(String[] args) {
Scanner scan =new Scanner(System.in); //初始化
int n = scan.nextInt(); //输入n
int[] a = new int[n]; //定义数组a
for(int i=0;i<n;i++)
{
a[i]=scan.nextInt();
}
//输入a数组各个元素
for(int i=0;i<n;i++)
{
System.out.println(a[i]);
}
//输出各个元素
}
}
//运行软件是eclipse
c++解法
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
int x[200001];
cin>>n;
for(int i=0;i<n;i++)
{
scanf("%d" ,&x[i]);
}
int max=x[0];
int sum=0;
for(int i=0;i<n;i++)
{
sum=sum+x[i];
if(sum>=max) max=sum;
if(sum<=0) sum=0;
}
cout<<max;
return 0;
}