大一作业求解答

kamichi、 2020-11-04 12:34:16

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

namespace 古风排版
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
string str = Console.ReadLine();
int a = str.Length;
char[] arr = str.ToCharArray();
int x, y;
x = a % n;//最后一行字符数
y = (a - x) / n;//列数-1
char[,] ar = new char[n, y + 1];
for (int i = 0; i < a; i++)
{
ar[i % n, y - (i - i % n) / n] = arr[i];
}
if (x != 0)
{
for (int k = x; k < n; k++)
{
ar[k, 0] = ' ';
}
}
for (int k = 0; k < n; k++ )
{
for (int m = 0; m <= y; m++)
{
Console.Write(ar[k, m]);
}
Console.Write("\n");
}
Console.ReadLine();
}
}
}

网上找到的只有c语言答案,但我们还没学。
求大佬帮忙看看我这错在哪怎么改,或者给个其他的解法,谢谢!!!
...全文
9099 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡鱼_ 2020-11-04
  • 打赏
  • 举报
回复
突然想看下效果,整了篇《出师表》,标点符号用全角的替换过,字符加多了2个空白占位符以作间距 方法:

private static List<string> classicalChinese(int len, string text)
        {
            //按每组长度为len,将其分割成一个数组
            string patten = "[\\s\\S]{" + len + "}|[\\s\\S]{1," + len + "}";
            Regex rex = new Regex(patten, RegexOptions.IgnoreCase);
            //分割
            List<string> groups = new List<string>(rex.Matches(text).Cast<Match>().Select(m => m.Value).ToArray());
            //反转:ase ,st c,a te, is ,This
            groups.Reverse();

            List<string> result = new List<string>();
            List<List<string>> results = new List<List<string>>(len);
            for (int i = 0; i < len; i++)
            {
                results.Add(new List<string>());
            }
            //组合:["asa t","st ih","e tsi"," ce s"]
            for (int i = 0; i < groups.Count; i++)
            {
                //这里,包括后面,有将常规的空格转换成了一个空白占位符。只是为了观看效果
                char[] arr_Groups = groups[i].Replace(" ", " ").ToCharArray();
                for (int j = 0; j < len; j++)
                {
                    //加多了两个空白占位符以作间距
                    results[j].Add(arr_Groups.Length < j + 1 ? "   " : "  " + arr_Groups[j].ToString());
                }
            }
            //只是为了更直观,将每组字符进行拼接
            foreach (List<string> temp in results)
            {
                result.Add(string.Join("", temp.ToArray()));
            }
            
            return result;
        }
调用:我是webApi中加的方法,所以加的是<br/>换行符,以便于直接观看

string text = "先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。"
                + "宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。"
                + "侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。"
                + "将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。"
                + "亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。"
                + "臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间:尔来二十有一年矣。"
                + "先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。"
                + "愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。臣不胜受恩感激。"
                + "今当远离,临表涕零,不知所言。";
            Stopwatch sw = new Stopwatch();
            sw.Start();
            List<string> list = classicalChinese(20, text);
            sw.Stop();
            return string.Format("耗时:{0}ms", sw.Elapsed.TotalMilliseconds) + "<br/>" + string.Join("<br/>", list.ToArray());
效果:真的有看文言文的感觉呀。哈哈
Dear200892 2020-11-04
  • 打赏
  • 举报
回复
https://www.cnblogs.com/damonlan/archive/2011/06/04/2072743.html
泡泡鱼_ 2020-11-04
  • 打赏
  • 举报
回复

private static List<string> test(int len, string text)
        {
            //按每组长度为len,将其分割成一个数组
            string patten = "[\\s\\S]{" + len + "}|[\\s\\S]{1," + len + "}";
            Regex rex = new Regex(patten, RegexOptions.IgnoreCase);
            //分割
            List<string> groups = new List<string>(rex.Matches(text).Cast<Match>().Select(m => m.Value).ToArray());
            //反转:ase ,st c,a te, is ,This
            groups.Reverse();

            List<string> result = new List<string>();
            List<List<string>> results = new List<List<string>>(len);
            for (int i = 0; i < len; i++)
            {
                results.Add(new List<string>());
            }
            //组合:["asa t","st ih","e tsi"," ce s"]
            for (int i = 0; i < groups.Count; i++)
            {
                //这里,包括后面,有将常规的空格转换成了一个空白占位符。只是为了观看效果
                char[] arr_Groups = groups[i].Replace(" ", " ").ToCharArray();
                for (int j = 0; j < len; j++)
                {
                    results[j].Add(arr_Groups.Length < j + 1 ? " " : arr_Groups[j].ToString());
                }
            }
            //只是为了更直观,将每组字符进行拼接
            foreach (List<string> temp in results)
            {
                result.Add(string.Join("", temp.ToArray()));
            }
            
            return result;
        }
string text = "本片为英剧军情五处电影版,也是这一系列剧的大结局。当一个恐怖分子在一次常规交接中逃脱,克莱姆必须与军情五处遭贬低的情报长官合作,在即将到来的伦敦恐怖袭击之前追踪到恐怖分子。";
List<string> list = test(4, text);
return string.Join("<br/>", list.ToArray());
yijigu2 2020-11-04
  • 打赏
  • 举报
回复
引用 6 楼 yijigu2 的回复:
这个从右到左,竖向排列 其实就是矩阵右旋转一下 太久没看c/c++;按这个思路重排下就好了 1 2 3 4 9 5 1 5 6 7 8=>10 6 2 9 10 7 3 8 4
输入的行 变成 列 列变成行
yijigu2 2020-11-04
  • 打赏
  • 举报
回复
这个从右到左,竖向排列 其实就是矩阵右旋转一下 太久没看c/c++;按这个思路重排下就好了 1 2 3 4 9 5 1 5 6 7 8=>10 6 2 9 10 7 3 8 4
yijigu2 2020-11-04
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
int main()
{
string chars;

int row=0;//行
int col=0;//列



cin>>row;
cout<<"输入行数!"<<endl;
while(row>100)
{
    cin>>row;
}
cout<<"输入列数!"<<endl;
cin>>col;
while(col>1000)
{
    cin>>col;
}

cout<<"输入字符串!"<<endl;
cin>>chars;
int i=0;
string chartemp;


while(i<chars.length)
{
     //
}



}
学无涯止 2020-11-04
  • 打赏
  • 举报
回复
public void shupai(){ int rowLen = 7; String str = "this is a test program"; int arrFirstLen = str.length()/rowLen+1; int lastRowLen = str.length()%rowLen; String [][] arr = new String[arrFirstLen][rowLen]; int j = arrFirstLen-1; int jk = 0; for(String word:str.split("")){ arr[j][jk] = word; if(jk==rowLen-1){ jk =0; j--; continue; } jk++; } for(;lastRowLen<rowLen;lastRowLen++){ arr[0][lastRowLen]=" "; } for(int x =0;x<rowLen;x++){ for(int y =0;y<arrFirstLen;y++) { System.out.print(arr[y][x]); } System.out.println(""); } }
kamichi、 2020-11-04
  • 打赏
  • 举报
回复
引用 1 楼 Dear200892的回复:
https://www.cnblogs.com/damonlan/archive/2011/06/04/2072743.html
题型不一样啊。那个古诗可以用split直接分成几个字符串,我这个想尝试用二维数组输出
kamichi、 2020-11-04
  • 打赏
  • 举报
回复
题型不一样啊。那个古诗可以用split直接分成几个字符串,我这个想尝试用二维数组输出
内容概要:本文系统研究了开关频率大于谐振频率(fs>fr)工况下,移相混合控制LLC谐振变换器在低压增益区域的工作特性,深入分析其在变频与移相结合控制模式下的调制机理、工作模态划分及损耗分布规律。通过Simulink平台构建高保真仿真模型,对变换器在不同负载和输入条件下的电压增益、转换效率、关键器件电压电流应力等性能指标进行了全面仿真验证,重点探讨了其在低增益区间的软开关实现能力与效率优化潜力,旨在提升LLC变换器在宽范围输入输出应用中的动态响应与能源转换效率。; 适合人群:从事电力电子变换器设计、高频电源开发及相关领域的高校研究生、科研院所研究人员及企业研发工程师,要求具备扎实的电路理论基础、电力电子技术知识以及一定的Simulink仿真能力。; 使用场景及目标:①深入理解LLC谐振变换器在fs>fr条件下采用移相混合控制的内在工作机理与模态转换过程;②掌握利用Simulink搭建复杂谐振变换器精确仿真模型的方法与技巧;③分析并优化低压增益区的增益特性与损耗构成,为设计高效率、高功率密度的软开关电源提供理论依据和数据支持; 阅读建议:建议读者结合文中所述仿真模型,亲自复现仿真过程,重点观察不同控制参数(如移相比、开关频率)对电压增益曲线和关键波形的影响,并对比传统变频控制策略,深入探究混合控制在拓宽调压范围、提升轻载效率方面的优势,从而深化对现代高效谐振电源设计的理解。
内容概要:本文提出了一种基于粒子群优化算法(PSO)的配电网光伏储能双层优化配置模型,以IEEE33节点系统为标准算例,实现光伏发电单元与储能系统的协同选址与定容优化。该模型采用双层架构设计,上层以投资成本、运行经济性及网络损耗最小为目标优化设备配置方案,下层通过潮流计算评估系统在不同负荷场景下的运行性能,综合考虑电压稳定性、供电可靠性及可再生能源消纳能力,最终通过Matlab编程实现完整求解流程,为高渗透率分布式电源接入背景下的配电网规划提供了有效的技术支撑。; 适合人群:具备电力系统分析基础和Matlab编程能力的研究生、高校科研人员及从事新能源并网、智能配电网规划与优化的工程技术人员。; 使用场景及目标:①研究含高比例光伏接入的配电网规划与运行协同优化问题;②掌握双层优化建模方法与粒子群算法在复杂电力系统问题中的应用技巧;③为实际工程中分布式光伏与储能系统的科学选址与容量配置提供理论依据与仿真验证平台。; 阅读建议:建议读者结合Matlab代码深入理解双层迭代求解机制,重点关注算法收敛性分析、参数敏感性测试,并可通过更换初始种群、调整权重因子或引入其他标准测试系统(如IEEE69节点)进行对比实验,进一步验证所提模型的普适性与鲁棒性。
内容概要:本文围绕双机并联虚拟同步发电机(VSG)在微电网中的功率分配、黑启动、虚拟阻抗与预同步控制展开,基于Simulink平台构建了完整的微电网系统仿真模型。重点研究了VSG在双机并联运行下的有功/无功功率均分控制策略,通过引入虚拟阻抗技术有效解决了因线路阻感比差异导致的功率分配不均问题。同时,设计了微电网黑启动流程与并网预同步控制模块,实现了待并网系统与主网在电压幅值、频率和相位上的精确同步,显著降低了并网冲击电流。系统整合了VSG控制、下垂控制、虚拟阻抗、锁相环(PLL)及预同步逻辑等关键环节,全面验证了多VSG协同运行的稳定性、自主恢复能力与并网可靠性。; 适合人群:具备电力系统、电力电子及自动控制等相关专业知识,从事微电网、分布式发电、VSG控制与并网技术研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解双机并联VSG系统中功率分配不均的机理及虚拟阻抗的补偿作用;②掌握微电网黑启动全过程及预同步控制的关键技术要点;③学习并实践基于Simulink的微电网多层次、多目标控制策略的建模与仿真方法;④为相关科研课题、毕业设计或实际工程项目提供可复现、可拓展的技术方案与仿真参考。; 阅读建议:建议结合提供的Simulink模型文件进行同步学习,重点关注VSG控制参数整定、虚拟阻抗设计原则、预同步切换逻辑等核心模块的实现细节,并可通过改变负载投切、线路参数或初始频率偏差等条件进行多工况仿真测试,以深入探究系统的动态响应特性与鲁棒性。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧