我把那个从记事本输入数组的程序改了,想把string数组初始化转化成int但是出错了,帮我看看好吗

Java编程题,我做了好久还是没做出来_百度知道
Java编程题,我做了好久还是没做出来
读入未指定个数的整数初学Java编写程序,然后计算输入值的总和及平均值,当输入0是程序结束(不对0计数),判断读入的正数负数各有多少个
/zhidao/wh%3D600%2C800/sign=2fa1d6e3bae/d53fd1ed3cacedcc438a0真心感谢各位.baidu,我用的是记事本写.com/zhidao/wh%3D450%2C600/sign=c2fdc1494af/d53fd1ed3cacedcc438a0,这是我自己写得,你们打的我好多没学到.com/zhidao/wh%3D450%2C600/sign=3bcb4efb9fc//zhidao/wh%3D600%2C800/sign=840d73adb33533faf5e39b/96dda144adf310ef431adcaef84ad.hiphotos.jpg" esrc="/zhidao/pic/item/96dda144adf310ef431adcaef84ad.hiphotos.baidu,<a href="http.hiphotos://f://b.hiphotos,好心人帮帮我看看错误在哪里.com/zhidao/pic/item/d53fd1ed3cacedcc438a0
提问者采纳
&&nbsp.nextInt()这一块;&&&&nbsp.;&&count.;&&&int&&&&&&&&&&&&&nbsp,即便0后面还有数字;&&&&&&&nbsp;若要求不是这样;&&&&&&&&&&&0,后面的int想要继续赋给number得通过循环啊;=&&&&&}&//……&&&&&=&&&&&&&&&&&&&&while(&&&input&mian()&&&nbsp.;&blabla&&&nbsp.hasNextInt())&if(&&&&&&&&&&&nbsp.;&total&&&&&&&&&&&count1&&&&&&public&&&&{&&nbsp.&&&&&&&&&&&&&&&number&0;&&&&&&nbsp.nextInt();Scanner(S&&&&//将if体外的代码照抄至此&&Sint&&&&nbsp:&{&&&input.&int&&&&&&&&&//如果一旦碰到0就退出;&//将你所给代码中的对应if体内代码照抄即可&int&&);&&&&&&&&&&&&&&&&&&0;&&&&nbsp.println(&&&&&nbsp.;&&&&&//;static&&&&&&&&&&&&&&&&nbsp,注释掉break&&}&&nbsp,你只把你输入的第一个int赋给了&&&&&&&count2&&&&nbsp.in);&&&&&&&&&&&&&&&&nbsp。main方法体修改如下;&&Scanner&int&number&{&&}else{&&&&&&&&&&&&=&&&&&&new&&void&&&&&&&&nbsp你出错的语句是在&&&&=&=&&=&&&&&int&nbsp!=0)&nbsp.;&&&&&&nbsp
来自团队:
其他类似问题
为您推荐:
其他10条回答
int fushu=0;
int zhengshu=0;
int sum=0;
ArrayList list = new ArrayList();//假设你把数据加到list里面
list.Add(1);
list.Add(2);
//计算正负个数
for (int i = 0; i & list.Ci++ )
if (Convert.ToInt32(list[i]) & 0)
if (Convert.ToInt32(list[i]) & 0)
zhengshu++;
//自己加提示停止运行
sum =sum+ Convert.ToInt32(list[i]);
Console.WriteLine(&整数个数:& + zhengshu + &\r\n& + &负数个数:& + fushu + &\r\n...
import java.io.BufferedR
import java.io.F
import java.io.IOE
import java.io.InputStreamR
import java.io.ObjectInputStream.GetF
import java.sql.T
import java.text.FieldP
import java.text.ParseP
import java.text.SimpleDateF
import java.util.ArrayL
import java.util.C
import java.util.D
import java.util.L
import java.util.P
import java.util.V
import javax.mail.A
import javax.mail.M
import javax.mail.MessagingE
import javax.mail.M
import javax.mail.PasswordA
import javax.mail.S
int x=(int)System.in.read();int sum=0,count=0,Positive=0,negative=0;while(x!=0){if(x&0){Positive++;}else{negative++;}sum+=x;x=(int)System.in.read();}System.out.println(&sum=&+sum+“;average=”+(sum/(Positive+negative)+&;count=&+(Positive+negative)));
package&import&java.util.S/**&*&@author&YUGI&KONAMI&*/public&class&CalcNumbers{ public&static&void&main&(&String[]&args&) {
System.out.println&(&输入一行数字:(0个或多个空格分开)&);
Scanner&s&=&new&Scanner&(System.in);
String&line&=&
while&(s.hasNextLine&())
line&=&s.nextLine&().trim&();
if&(&0&.equals&(line))
s.close&();
if&(!line.matches&(&^((\\+|\\-)?\\d+\\s*)+$&))
System.err.println&(&输入格式不正确&&);
String&reg3&=&&\\s+&;
String[]&strs&=&line.split&(reg3);
int&sum&=&0;
int&z&=&0,&f&=&0;
for&(&String&string&:&strs&)
if&(!&&.equals&(string))
if&(string.startsWith&(&+&))
string&=&string.substring&(1);
else&if&(string.startsWith&(&-&))
sum&+=&Integer.parseInt&(string);
System.out.println&(&正数有&&&+&z&+&&&个&);
System.out.println&(&负数有&&&+&f&+&&&个&);
System.out.println&(&和是:&&+&sum&+&&&,avg是:&&&+&sum&/&(&strs.length&-&1&));
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Integer zhengshugeshu = 0;
Integer fushugeshu = 0;
Integer he = 0;
//创建具有数组类似功能的集合对象
List&Integer& list = new ArrayList&Integer&();
//循环输入整数,输入0结束
while(true){
num = in.nextInt();
if(num & 0){
zhengshugeshu ++;//获得整数个数
}else if(num & 0){
fushugeshu ++;//获得负数个数
he +=//求和
if(num != 0){
import&java.util.Spublic&class&Calc&{&&&&private&Scanner&scanner=new&Scanner(System.in);&&&&private&int&posNum=0;&&&&private&int&negNum=0;&&&&private&int&sum=0;&&&&private&int&number=0;&&&&private&int&num=0;&&&&&&&&public&Calc(){&&&&&&&&while(true){&&&&&&&&&&&&System.out.print(&请输入数字:&);&&&&&&&&&&&&number=scanner.nextInt();&&&&&&&&&&&&if(number==0){&&&&&&&&&&&&&&&&&&&&&&&&&&&&}else&if(number&0){&&&&&&&&&&&&&&&&negNum++;&&&&&&&&&&&&}else&{&&&&&&&&&&&&&&&&posNum++;&&&&&&&&&&&&}&&&&&&&&&&&&num++;&&&&&&&&&&&&sum+=&&&&&&&&}&&&&&&&&System.out.println(&输入结束,结果如下:&);&&&&&&&&System.out.println(&正数个数:&+posNum);&&&&&&&&System.out.println(&负数个数:&+negNum);&&&&&&&&System.out.println(&总和:&+sum);&&&&&&&&System.out.println(&平均数:&+(sum/num));&&&&}&&&&&&&&public&static&void&main(String[]&args)&{&&&&&&&&//&TODO&Auto-generated&method&stub&&&&&&&&new&Calc();&&&&}}
//使用集合(ArrayList),集合的优点是没有一定的长度。import&java.util.*;Scanner&input=new&Scanner(System.in);ArrayList&al=new&Arraylist();int&total=0;int&posiNum=0;int&negaNum=0;for(int&i=1;;i++){&&&&System.out.print(&请输入第&+i+&个数(输入0离开):&);&&&&Integer&in=new&Integer(input.nextInt());&&&&&&&&&&&&if(in&0){posiNum++;}&&&&else&if(in&0){negaNum++;}&&&&else{}&&&&total+=&&&&al.add(in);//加入in&&&&}System.out.println(&总共输入了&+al.size()+&个数&);System.out.println(&正数有:&+posiNum+&个,\t负数有:&+negaNum+&个&);System.out.println(&总共是:&+total);double&totalDec=System.out.println(&平均是:&+(totalDec/al.size()));你写的有一些问题:nextInt();他会把空格当作分隔符,也就是你相当只输入了12这个数,解决办法在下面。你的total变数不应是=total+1(应该是加上number),你的count做了total做到的事。你的 count1=count1+1; 可改为 count1++; (++就等於自加1,如要自加2以上就要用+=2,也有-=3,*=4,/=5,用法都差不多,count1=count1-3,count1=count1*4,count1=count1/5)&&&&&&&&1.解决办法:将你的程式套一个回圈,类似这样:import&java.util.SScanner&input=new&Scanner(System.in);System.out.println(&Enter&some&int&value,the&Enter&program&stopped&when&input=0:&);int&//总数int&//总数量int&count1=0;//正数量int&count_1=0;//负数量int&for(int&i=1;;i++){&&&&number=input.nextInt();//将此输入动作执行多边,直到输出0或有例外&&&&if(in&0){count1++;}&&&&else&if(in&0){count_1++;}&&&&else{}//如果不小于零也不大于零,就是等于零,跳出回圈,进行输入阶段&&&&total+=//加总&&}System.out.println(&总共输入了&+(count1+count_1)+&个数&);System.out.println(&正数有:&+count1+&个,\t负数有:&+count_1+&个&);System.out.println(&总共是:&+total);System.out.println(&平均是:&+(total*1.0(count1+count_1));}}像这样的改进。
public class Test{//public static void main(String[] args){
//定义从控制台接受整数Scanner sc = new Scanner(System.in);List&Integer& numbers = new ArrayList&Integer&();while(true){
sysout(&请输入整数:&);
int number = sc.nextInt();if(number == 0){
numbers.add();}}}}
public&static&void&main(String[]&args)&{
double&sum=0;
double&average=0;
int&zIndex=0;
int&fIndex=0;
while&(true)&{
Scanner&scann&=&new&Scanner(System.in);
System.out.println(&请输入任意整数!&);
int&no&=&scann.nextInt();
if&(0==no)&{
&&&&System.out.println(&程序已退出!&);
if&(no&0)&{
}else&if(no&0){
average=sum/(zIndex+fIndex);
System.out.println(&正整数有&&+&zIndex&+&&个&);
System.out.println(&负整数有&&+&fIndex&+&&个&);
System.out.println(&总和是&&+&sum);
System.out.println(&平均数是&&+&average);
} }&如果你需要一次输入 -1 1 3 14 等一堆数字的话 需要用数组来装起来再处理,或者你使用main方法里面的args 也是可以的,你现在使用一个整形来赋值的话只会存起第一个,后面那些就不会有
if(x!=0){//求和求平均}else{System.exit(0);//程序跳出运行}
java编程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁The page is temporarily unavailable
nginx error!
The page you are looking for is temporarily unavailable.
Please try again later.
Website Administrator
Something has triggered an error on your
This is the default error page for
nginx that is distributed with
It is located
/usr/share/nginx/html/50x.html
You should customize this error page for your own
site or edit the error_page directive in
the nginx configuration file
/etc/nginx/nginx.conf.C++ 字符数组转化成整型数组_百度知道
C++ 字符数组转化成整型数组
&lt.baidu, char* argv[]){ cout& return 0.getline(& &&lt.get();&quot://f; /zhidao/pic/item/ef086e061d95f746; cout&i++)
array[i]=str[i]-&#39;endl.;&i& cout&);#include&/zhidao/wh%3D600%2C800/sign=1bed3e7ab5003af34defd466051aea64/ef086e061d95f746;/zhidao/wh%3D450%2C600/sign=c46ede69c55cc6ef086e061d95f746.选择排序&&2; for(i=0.h& system(&quot#include &&endl.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink">请问错在哪里://f;0&#39.hiphotos.冒泡排序&&&lt://f. count=strlen(str)-1;&&gt.jpg" esrc="& const int max_size=99;
1;iostream&gt. char str[max_size],max_size);&array[i] ; cin&}<a href="PAUSE&quot,请输入需要排序的数字;int main(& int array[max_size],i;i++)
cout& for(i=0:&&&请选择你要的排序方式;#include &quot
提问者采纳
&&&&&&j&nbsp:&namespace&&{&&&&&&&&&&;&&&&&&&=&&&count&&#39;const&=&&&i++)&记录有多少个数字&&cout&lt,max_size);&&&&&cout&&&&j;&&&&&&&请选择你要的排序方式;system(&&&&&&=&&&str[i]有可能是空格;&&&&&&array[j]=str[i]-&#39;int&&&&&&0;&&&nbsp.选择排序&for(i=0;if&&&(str[i]&&&&&=&&nbsp.getline(&int&&&&&count&&&&int&&&)&&&#include&&&&nbsp,&&2;//count=strlen(str)-1;&cout&&&&&&0&#39;&1;&//&&&&&iostream&&&&main(int&&&&PAUSE&&return&&i&&&);&&&&quot:&&&&i++)&&&&&j++;&&cin&&&&&;&nbsp,所以要判断一下&&&&&int&&&&&&nbsp.冒泡排序&&cout&&&nbsp.h&quot,如果是两位以上的数字;&cout&lt,i;&&&nbsp,&&for(i=0;&&&请输入需要排序的数字;&int&&&&&&&char&&&//&array[i]&&&&nbsp,j&max_size=99;&array[max_size];&&这里应该用整个字符数组的长度&&&&&&nbsp,用这样的方法就不行了#include&&&&i&&{&0;&&&str[max_size];&#39;&}&&nbsp,看不懂再问我// 其实你这个写法只能取到个位数字;&&strlen(str);&using&&}&nbsp// 代码修改了;//&&==&&&nbsp.get();&argv[]){&&char*&&&0;&&&&quot,修改的地方都加了注释
看懂了,知道错在哪里了;请问关于字符数组转换成整型数组有没有更简单的方法?
&&&&char&c[5]&=&&888&;&&&&int&m&=&atoi(c);&&&&这个可以很方便地转。
char&c[5]&=&&888&;& &int&m&=&atoi(c);//只能转化成整型,不能转化成数组,我想要数组,因为接下来还要排序。可是这样出错:
嗯,这个就是单独转的。如果你想把型如“1 23 55 88”转成[1,23,55,88]需要把字符数组先转成二维字符数组,即[&1&, &23&, &55&, &88&]然后再把每一个字符串用atoi转成int型。当然,如果你们的内容要求没有那么严格,只做个位的减法也可以了。因为这个转化的过程,其实更多考查的是对字符数组的使用。
提问者评价
其他类似问题
360&#92;b&#92;000&#92;360&#92;377&#92;065&#92;022&#1335;b&#92;213&#92;001&#92;003&#92;000&#92;213&#92;255&#92;377&#92;004&#92,你必须把str中的空格去掉;377&#92;array = {1;b&#92;350&#92;347&#92, 调试发现;b&360&#92;004&#92;5&#92;370&#92;250&#92,在1和2之间,为了避免这种情况;022&#1335, -16,也就是你输入的1和2之间的空格空格的ASCii值是32;346&#92;004&#92;377&#92;364&#92;267&#92;377&#92,所以出现了一个-16;000&#92;207&#92;364&#92;364&#92;377&#92;360&#92;237&#92;377&#92;b$&#92;277 &#92;250&#92;020&#;b&#92;267&#92;004&#92;277&#92,‘0’是48;065&#92;004&#92;200&#92;350&#92;004&#92;213&#92,str中有空格;020&#92;200&#92;b$&#92;267&#92;004&#92;377&#92;&#92;000&#92;060&#92;213&#92;360&#92;270&#92;000&#92;267;377&#92str = &277&#92;213&#92;1 2&#92;277I&#92;&#92;000&#92;347&#92;004&#92;377&#92;b&#92;377&#92;&#92;237&#92;277&#92;370&#92;267&#92;267&#92;003&#92
为您推荐:
其他1条回答
改为count=strlen(str),只是原样输出;并且你没写排序的代码啊,根本没排啊count=strlen(str)-1
count=strlen(str)-1;也还是不对的;排序的函数还没写,转化整型数组就出问题了;
你不要带空格,直接输入12353这样是不会出错的。如果你一定需要加空格,就要对输入赋值修改下。
字符数组的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁江湖救急!帮忙改一个java的小程序,在解释一下每句的意思和作用,谢谢!_百度知道
江湖救急!帮忙改一个java的小程序,在解释一下每句的意思和作用,谢谢!
}else if(num==4){
S),摆脱我改一下程序和详细的解释一下每个语句的意思和作用(好充字数).out.println(&执行添加客户信息&&#92;
custNo[1]=1545.in);******************************************************&#92。最后谢谢各位大虾;); public void showCustMMenu() {
Scanner input=new Scanner(S).n&
}else if(num==2){
S); Menu menu=new Menu().。解释语句不怕废话多;
System.println(&quot.int custScore[]=new int[100]:&
Sn&08&quot.equals(&quot.执行查询客户信息&quot.seleManager().add().javapublic class Data {int custNo[]=new int[100];
con=false.println(&);).显示所有客户信息&#92.添加客户信息&#92;******************************************************&#92;n&quot.&#92;
custBirth[1]=&
if(num==1){
custScore[1]=2200;
St&#92,输入数字或者按0返回上一级菜单;t4.println(&
con=请选择;t3;
answer=input.out,充字数为主.print(&,请重新输入;
}while(answer.out:&quot.println(&quot.println(&quot.println(&t2.y&public class Menu { CustManagement manager=new CustManagement()。因为是在dos运行;
}else if(num==3){
System.println(&quot.修改客户信息&#92.out.t1;输入错误;
} }记事本文件D}}记事本文件M
boolean con,我没学过又不能推,网上学学查查终于能运行了,希望能改成对话框点击按钮的形式;n&public class Test { public static void main(String[] args) {
Scanner input=new Scanner(System.查询客户信息&#92,输入;&#92;是否继续(y&#47;)).
Sn&quot.&#92.println(&
System.javat&#92;执行修改客户信息&
int num=);26&04&#47.modify(),所以比较简陋;06&#47,所以应了下来;n).out:& public Data() {
custNo[0]=1623.nextInt();).println(&t&#92;
custBirth[0]=&
St&#92.out,并附上程序.java
System.next().println(& do{执行显示所有客户信息&).*;我行我素购物管理系统 &
}while(con).println(&quot.out。记事本文件;n&quot:&quot.show():Test女友因为要写论文;n&quot.showCustMMenu();
custScore[0]=5000.println(&);
System.print(&).*;); 客户信息管理&#92;请选择数字 ;String custBirth[]=new String[100];);
S).).in); String answer=&y&quot
提问者采纳
如果num等于1;
custBirth[1]=&quot,执行else if块中的语句
S记事本文件D创建一个CustManagement类型的对象
public void showCustMMenu() {
Scanner input=new Scanner(S
S///t1;t4;调用Menu类的showCustMMenu()这个方法
System.添加客户信息&#92.修改客户信息&#92;
System.out.println(&/得到系统输入
&#47.out.out./;/ 客户信息管理&#92;如果num等于4;n&******************************************************&#92;导入相应的java类public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(Sn&n&&#92.println(&/// public Data()/执行添加客户信息&n&为三个数组变量进行赋值操作
custNo[0]=1623;
con=true.println(&quot.println(&08&quot,执行if块中的语句
} }&#47.);/请选择;得到系统输入 Menu menu=new Menu();
custBirth[0]=&
do/在控制台打印&是否继续(y&#47,执行else if块中的语句
S);/&#47.modify().查询客户信息&#92;n).java class Menu
{ CustManagement manager=new CustManagement().print(&&#47.showCustMMenu();&#47.);输入错误;&#92:&quot:&04/t3;//&#47,执行下面循环中的语句
con=如果没有num满足的值;下面都为输出的内容
S当con为true时;t2;),请重新输入.
custScore[0]=5000;调用CustManagement类的show()方法
else if(num==2){/);26&);
custScore[1]=2200;/&#47.in););).equals(&;&#92.*:&quot.in);Data类的构造函数 { /调用CustManagement类的modify()方法
}else if(num==4){&#47.执行显示所有客户信息&
}}/&#47,执行else if块中的语句
S如果num等于2.println(&quot.显示所有客户信息&#92;t&#92.print(& do &#47.out,输入数字或者按0返回上一级菜单;06&#47,输入;);执行修改客户信息&&#47.seleManager();
System./记事本文件M///y&/&#47.println(&int custScore[]=new int[100].
S得到用户输入的值
custNo[1]=1545;);//
System.out.println(&如果num等于3.println(&我行我素购物管理系统 &t&#92;/;/当answer的值为y时;);定义三个不同类型的数组int custNo[]=new int[100];/n&请选择数字 .);n&调用CustManagement类的add()方法
}else if(num==3){/
answer=实例化一个Menu对象 String answer=&quot.java class Data {
*/&#92:&quot.n);y&
}while(con);n&quot.得到用户输入
if(num==1)/)):&quot.nextInt();///);/执行查询客户信息&输出内容
int num=/import java.println(&quot.next();/调用CustManagement类的seleManager()方法
else&#47.println(&);
S&#47.println(&quot.show();******************************************************&#92.add();String custBirth[]=new String[100];/t&#92;t&#92.println(&quot,执行下面else块中的语句
System.println(&quot/是否继续(y&#47,执行下面循环中的语句 {
提问者评价
其他类似问题
为您推荐:
小程序的相关知识
其他1条回答
我也要写论文 是java数字签名在学生成绩系统的实现
哎 也做不出来
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 string数组初始化 的文章

 

随机推荐