在线求解 C#的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 14:56:06
using System;
using System.Collections.Generic;
using System.Text;

namespace zuoye2
{
class Program
{
static void Main(string[] args)
{
int money;
// int noteNumber;
int sum;//总纸张数
int bai;//百元
int wushi;//50
int shi;//10
int ershi;//20
int wu;//5
int i;//1元
Console.WriteLine("请输入金额");
money = int.Parse(Console.ReadLine());
sum = CalculatMoney( money, bai, wushi, ershi, shi, wu, i, sum);
Console.WriteLine("组成{0},需要{1}张纸币",money,sum);
Console.WriteLine("共需要{0}张一百的,{1}张五十的,{2}张二十的,{3}张十块的,{4}张五块的,{5}张一块的",
bai,wushi,ershi,shi,wu,i);
Console.ReadLine();
}
private static int CalculatMoney(int mon

你应该按引用调用传递参数,或者 使用out关键字传递参数,这样,函数体外部的int型值才会在函数体内部被更改. 或者将参数返回到函数体外部

可尝试对函数定义做如下修改

private static int CalculatMoney(int money,ref int bai,ref int wushi,ref int ershi,ref int shi,ref int wu,ref int i,int sum)

或者

private static int CalculatMoney(int money,out int bai,out int wushi,out int ershi,out int shi,out int wu,out int i,int sum)

好像用 递归算法 好些
因为当100面值的数量不够时,得用50的代替。
改天有空再细想了

寒,又是这个问题...
你计算纸张数量的时候,bai,shi,wushi等变量的改变并没有被正确接收到(原因:你写在CalculatMoney(int money)
方法里的变量是局部变量,出了方法体就无效了,所以你那样写输出的结果是Main函数中声明的值,由于你没有初始化,所以默认都输出0)所以应该采用数组来接收所有需要输出的变量,而不仅是sum,以下是更改后的方法,已经编译通过了的。
-------------------------------

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

namespace zuoye2
{
class Program
{
static void Main(string[] args)
{
int money;

int sum;//总纸张数
Console.WriteLine("请输入金额:");
money