首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求班级分数平均值,该如何处理

2013-09-08 
求班级分数平均值int Sore int.Parse(Console.ReadLine())//?为何这里读出Readline()报错?using System

求班级分数平均值
int Sore =int.Parse(Console.ReadLine());//?为何这里读出Readline()报错?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 求班级分数平均值
{
    class Program
    {
        static void Main(string[] args)
        {   
            int sum=0;
            Console.WriteLine("请输入班级人数:");
            int Qty = int.Parse(Console.ReadLine());
            for(int i=1;i<=Qty;i++)
            {
                Console.WriteLine("请输入第{0}学生的分数", i);

                try
                {   
                    Convert.ToDecimal(Console.ReadLine());
                }
                catch (Exception)
                {
                    Console.WriteLine("输入的不是数字,请重新输入!");
                }        //判断输入的是否为数字

                int Sore =int.Parse(Console.ReadLine());//?为何这里读出Readline()报错?
                sum=sum+Sore;
            }
            int Avg = sum / Qty;  //求分数的平均值
            Console.WriteLine("班级的平均成绩为:{0}",Avg);
            Console.ReadLine();
        }
    }


}


[解决办法]
Convert.ToDecimal(Console.ReadLine());
=>
Convert.ToInt32(Console.ReadLine());

或者反过来。
[解决办法]
首先说明下,你这样写是有问题的,问题在:
Console.WriteLine("请输入第{0}学生的分数", i); // 提示输入第一个学生的分数,次数等待用户输入,没问题
Convert.ToDecimal(Console.ReadLine()); // 用户输入了分数,做了输入格式的判断,没问题。可是接下来的一句
int Sore =int.Parse(Console.ReadLine());//?为何这里读出Readline()报错?
因为这时你用的还是Console.ReadLine()因此还是等待用户输入的,如果这时候你按的是回车,就会出错了!

正确的写法:

decimal sum = 0;
            Console.WriteLine("请输入班级人数:");
            int Qty = int.Parse(Console.ReadLine());
            for (int i = 1; i <= Qty; i++)
            {
                Console.WriteLine("请输入第{0}学生的分数", i);
                decimal Sore = 0;
                try
                {
                    Sore = Convert.ToDecimal(Console.ReadLine());
                }
                catch (Exception)
                {
                    Console.WriteLine("输入的不是数字,请重新输入!");
                    i--;
                    continue;


                }        //判断输入的是否为数字

                //int Sore = int.Parse(Console.ReadLine());//?为何这里读出Readline()报错?
                sum = sum + Sore;
            }
            string Avg = (sum / Qty).ToString("F2");  //求分数的平均值
            Console.WriteLine("班级的平均成绩为:{0}", Avg);
            Console.ReadLine();

热点排行