小弟在作業中遇到了個棘手的問題,以前讀書的時候學過VB編程只是簡單的大學里應付考試用的,現在基本上全還給老師了。所以在這里請大家幫個忙!我遇到的問題是,例如一組資料: 20.3 23 34 46 123 145 174 173.9 220.3 237.2 198.3 183.2 177.3 現在這樣的數值從20多到300左右含小數點的數值,怎樣把這些數值中的幾個數值相加,結果是798.8到800.9范圍內的數,那幾個相加的數值要顯示出來。數值用完就不能重復使用了。(最好是把所有數值輸入進去求出結果分成一組一組的顯示出來)。
在這里小弟先謝謝大家了! QQ 315829567 郵箱 [email protected] 謝謝各位大蝦
uj5u.com熱心網友回復:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var data = "20.3 23 34 46 123 145 174 173.9 220.3 237.2 198.3 183.2 177.3".Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(x => double.Parse(x));
var result = foo(data, new double[] { }, 798.8, 800.9);
foreach (var item in result)
{
Console.WriteLine("sum: {0}, items: {1}", item.Sum(), string.Join(", ", item.Select(x => x.ToString())));
}
}
static IEnumerable<IEnumerable<double>> foo(IEnumerable<double> data, IEnumerable<double> includenum, double min, double max)
{
double includenum_sum = includenum.Sum();
if (includenum.Sum() > min && includenum_sum < max) yield return includenum;
if (includenum.Sum() < min)
{
foreach (double d in data.Except(includenum).Where(x => includenum_sum + x < max && (includenum.Count() == 0 || x > includenum.Max())))
{
foreach (var item in foo(data, includenum.Concat(new double[] { d }), min, max))
{
yield return item;
}
}
}
}
}
}
sum: 799.4, items: 20.3, 23, 34, 46, 145, 173.9, 174, 183.2
sum: 799.8, items: 20.3, 23, 34, 145, 174, 183.2, 220.3
sum: 799.7, items: 20.3, 23, 34, 145, 173.9, 183.2, 220.3
sum: 800.8, items: 20.3, 23, 34, 173.9, 174, 177.3, 198.3
sum: 800.8, items: 20.3, 23, 46, 123, 174, 177.3, 237.2
sum: 800.7, items: 20.3, 23, 46, 123, 173.9, 177.3, 237.2
sum: 800.8, items: 20.3, 34, 46, 123, 174, 183.2, 220.3
sum: 800.7, items: 20.3, 34, 46, 123, 173.9, 183.2, 220.3
sum: 800.8, items: 20.3, 34, 46, 145, 174, 183.2, 198.3
sum: 800.7, items: 20.3, 34, 46, 145, 173.9, 183.2, 198.3
sum: 799.8, items: 20.3, 34, 173.9, 174, 177.3, 220.3
sum: 799.8, items: 20.3, 46, 145, 174, 177.3, 237.2
sum: 799.7, items: 20.3, 46, 145, 173.9, 177.3, 237.2
sum: 799.1, items: 20.3, 46, 174, 177.3, 183.2, 198.3
sum: 799, items: 20.3, 46, 173.9, 177.3, 183.2, 198.3
sum: 799.1, items: 20.3, 123, 198.3, 220.3, 237.2
sum: 800.1, items: 20.3, 145, 177.3, 220.3, 237.2
sum: 799.4, items: 20.3, 177.3, 183.2, 198.3, 220.3
sum: 799.7, items: 23, 34, 145, 177.3, 183.2, 237.2
sum: 799.1, items: 23, 46, 145, 173.9, 174, 237.2
sum: 799.5, items: 23, 145, 174, 220.3, 237.2
sum: 799.4, items: 23, 145, 173.9, 220.3, 237.2
sum: 798.9, items: 34, 46, 123, 177.3, 198.3, 220.3
sum: 800.7, items: 34, 46, 123, 177.3, 183.2, 237.2
sum: 800.5, items: 34, 173.9, 174, 198.3, 220.3
sum: 800.5, items: 46, 123, 174, 220.3, 237.2
sum: 800.4, items: 46, 123, 173.9, 220.3, 237.2
sum: 800.5, items: 46, 145, 174, 198.3, 237.2
sum: 800.4, items: 46, 145, 173.9, 198.3, 237.2
sum: 800.8, items: 46, 174, 177.3, 183.2, 220.3
sum: 800.7, items: 46, 173.9, 177.3, 183.2, 220.3
sum: 799.1, items: 123, 145, 173.9, 174, 183.2
sum: 800.8, items: 145, 198.3, 220.3, 237.2
Press any key to continue . . .
uj5u.com熱心網友回復:
版主可否私聊 教教我 我現在快愁死了,以前讀書的時候學過VB簡單的操作,現在全還給老師了。QQ: 315829567 我的聯系方式uj5u.com熱心網友回復:
下載一個C#,新建一個控制臺程式,貼上上面的代碼,即可得到結果
下載地址:http://go.microsoft.com/?linkid=9709940
uj5u.com熱心網友回復:
用C語言嗎? 還有就是里面的數字不能重復使用怎么辦uj5u.com熱心網友回復:
你看結果中哪個不對。
uj5u.com熱心網友回復:
我看明白了版主 那是不同的數相加 同一個結果 太感謝你了! 我是直接將代碼復制過去就可以嗎uj5u.com熱心網友回復:
對的。
是C#,不是C,別搞錯了。至少需要2010版本,也可以是2012 2013。
uj5u.com熱心網友回復:
我直接用你給我連接下載的 謝謝版主 十分的感謝
uj5u.com熱心網友回復:
版主我怎么運行不對呀, 你可以遠程幫我嗎? 我的QQ315829567uj5u.com熱心網友回復:
你最好下這個:http://go.microsoft.com/?linkid=9709969
前面那個是在線安裝的,這個是離線版本的。下載好以后解壓縮直接安裝。
uj5u.com熱心網友回復:
我的結果顯示的那個 視窗怎么顯示uj5u.com熱心網友回復:
按ctrl+f5uj5u.com熱心網友回復:
十分感謝 版主 收徒弟一拜
uj5u.com熱心網友回復:
版主能否設計個固定的視窗,每次使用時只需要把數字輸進去,然后輸出每組資料。uj5u.com熱心網友回復:
這么懶呀,這個自個弄下不就好了uj5u.com熱心網友回復:
學習。。。。。uj5u.com熱心網友回復:
這個,你可以自己嘗試改寫,有不懂的歡迎來論壇提問。只能授人以漁,授人以魚的事情是沒法做的。
uj5u.com熱心網友回復:
是我確實不怎么會鼓搗 所以在這里請教大家跟大家學習下uj5u.com熱心網友回復:
找本書先入門下吧。
uj5u.com熱心網友回復:
我現在是急用在作業上,版主推薦本書吧,多學學以后用得到轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/136277.html
標籤:VB基礎類
上一篇:多條件選出相同部分
下一篇:求教一個VB的問題。
