Loading...
AneliyaM avatar AneliyaM 0 Точки

Матрици в C#

Имам задача: 

Дадена е целочислена матрица a(m,n). Намерете сумата на трицифрените числа във всеки стълб.

Може ли малко помощ, мога само да си въведа елементите и да ги изведа. Общо взето си нямам предтава как се решава. Много, много ще съм благодарна, ако някой ми помогне.

Тагове:
0
Module: C# Advanced
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки
Best Answer

това ще стане с 2 цикъла да обходиш колоните,и редовете. Обаче въпроса е искаш на всички 3 цифрени числа тоест >= 100? нещо друго като ограничения за задачата?

общо взето е:

var matrix=[{1,100},{22.333},{3333,11} и tn..]

int result=0

for(cols=0;cols<matrix.getlenght(0);cols++)

     for(rows=0;rows<matrix.getlenght(1);rows++)        

             if(matrix[cols,rows]>=100 &&matrix[cols,rows]<1000 ) result+=matrix[cols,rows]

         

и накрая изписваш получения result.нарочно не съм слагал скобите и енкапсулирането за да е по четимо но общо взето това е логиката. Въртиш по 2та индекса защото по това което си описала разбирам че е 2д матрица и ако числото ти отговаря на изискването да е между 100 и 1000 го събираш с другите.Докато обходиш цялата матрица и накрая вадиш резултата.В случая примерната матрица ще върне 433.Ако искаш вертикално просто след като всеки вътрешен цикъл свърши добавяй числото в някакъв масив стак или лист или опашка каквото ти е кеф и после принтирай поредицата.

0
28/01/2018 18:15:30
AneliyaM avatar AneliyaM 0 Точки

Благодаря много!

0
AneliyaM avatar AneliyaM 0 Точки

Само не мога да разбера това [{1,100},{22.333},{3333,11}  не мога да си го обясня с 22.333 и 3333,11 може ли малко пояснение?

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

значи дават ти матрица да кажем n=3 m=2 тоест имаш 3 реда с по 2 стойности. Първия ред тие 1 100 втория  ти е 22 333 и  третия е 3333 11. Ако искаш да ти обесня и какви са им индексите ок. първия ред е с индекси 00 и 01 втория е с 10 и 11 и третия е 20 и 21. На 00 място се намира 1 на 01 място се намира 100 и оп същата логика на 10 се намира 22

на 11 се намира 333, на 20 се намира 3333 и на 21 се намира 11. И матрицата свършва.

0
AneliyaM avatar AneliyaM 0 Точки

С риск да се изложа, но аз предупредих, че нямам идея как да я реша. Задачата ми е 1 към 1 както съм я написала отгоре. Нямам нищо дадено за m и n. 

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

е добре аз подхождам чисто логично: "Дадена е целочислена матрица a(m,n). Намерете сумата на трицифрените числа във всеки стълб."

това означава че вертикално матрицата ти ще е с дължина m а хоризонтално с дължина n. След това приемаме че са подадени някакви параметри и числа който да я запълнят. Затова съм си направил проста 3х2 матрица и съм я напълнил с някакви числа.

И след това както описах по-горе с 2 цикъла обхождам проверявам кои отговарят на условието и ги събирам. Ако искаш да е само вертикално събирането трябва да се случва извън вътрешния цикъл и няма да е едно число а масив от числа. Защото ще имаш n на брои варианта да получиш число което е в границите да е трицифрено едно или няколко които да сумираш.

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

ако искаш да ти кача примерно решение в pastebin. Но ми дай някакви входове с които тестваш за да направя смислено решение.

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

ок тея дни нямах време ще погледна пак набързо и ще пусна някакъв примерен код до края на деня.Че сега съм зает с курсова и подготовка за изпит на 11ти.

0
AneliyaM avatar AneliyaM 0 Точки

Супер, на мен ми трябва задачата точно за днес.

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

https://pastebin.com/LwriRSFE ето но, ги изчислява хоризонтално засега. може да го пробваш с всякакви int  входове :Д ако наистина трябва да е само вертикално ще променя проверките и пак ще стане.

0
AneliyaM avatar AneliyaM 0 Точки

Може ли да ги промениш, моляяя

0
AneliyaM avatar AneliyaM 0 Точки

Има ли как в началото да е без Split и ToArray ами да си е int [] input = int. Parse (Console.ReadLine());

Не знам дали правилно си задавам въпросаlaugh

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

ами значи split е задължителен иначе каквото и да подадем на конзолата  тя ще го приема като част от масива,а на теб празните места между числата не ти трябват.И накрая като правиш масив винаги трябва да сложиш отзад to.Array() или To,list() и тн зависи от типа масив иначе компилатора ще се сърди..

Бтв писах ти и писмо преди няколко дни.Честно казано понякога повече ме объркваш с въпросите си :Д

0
AneliyaM avatar AneliyaM 0 Точки

Аз направо се отказвам от тая задача. Показва ми много грешки, не мога да я довършаangryangryangry

0
AneliyaM avatar AneliyaM 0 Точки

Ако може да ми качиш, ще е мн добре. Аз съм мн мн начинаеща в C# и ми е доста трудно да се ориентирам

0
AneliyaM avatar AneliyaM 0 Точки

За мен няма значение какви входове се използват.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.