#c# #arrays #methods #exponent
#c# #массивы #методы #экспонента
Вопрос:
Я пытаюсь создать программу, использующую несколько методов, которые выводили бы базовые числа, показатели и их результирующие решения. Я пытаюсь запустить его, и он почти завершен, но я сталкиваюсь с парой проблем. Кажется, что сам код выполняется, но, похоже, не выводится на печать в Visual Studio. Я запустил его в онлайн-компиляторе и получил это в качестве вывода:
Кажется, я что-то упускаю в своем коде, но мне неясно, чего мне может не хватать. Это код, который я создал для проекта:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Project
{
class Program
{
static void Main(string[] args)
{
//Our initialized variables.
int intMinBase = 1;
int intMaxBase = 100;
int intMinExpo = 1;
int intMaxExpo = 10;
//Our arrays for the project, all at a length of 5.
long[] baseNumbers = new long[5];
long[] exponents = new long[5];
long[] results = new long[5];
//Randomize the baseNumbers and exponents!
Random randInt = new Random();
for (long i = 0; i < 5; i )
{
baseNumbers[i] = randInt.Next(intMinBase, intMaxBase);
exponents[i] = randInt.Next(intMinExpo, intMaxExpo);
}
PrintArrays(baseNumbers, exponents, results);
}
//This is potentially experimental code for the Power Method.
public static int Power(int baseNum, int exponent)
{
int answer;
if (exponent == 1)
{
answer = 1;
}
else
{
answer = baseNum * Power(baseNum, exponent - 1);
}
return answer;
}
//The new method to be printed. Is this the correct manner to display this?
public static void PrintArrays(long[] baseNum, long[] exponent, long[] result)
{
Console.WriteLine($"BasetExponenttResult");
for (int print = 0; print < result.GetUpperBound(0); print )
{
Console.WriteLine(baseNum[print] "t" exponent[print] "t" result[print]);
}
}
}
}
Мой вопрос в основном заключается в том, что я что-то упускаю и почему он не отображается для печати в Visual Studio, но появляется в онлайн-компиляторе? Я подозреваю, что ответ на первую часть вопроса связан с методами, которые я использовал, но я не уверен.
Комментарии:
1. Вы никогда не вызываете свою «экспериментальную»
Power
функцию. Вот почему все результаты равны нулю.2. » Я запустил его в онлайн-компиляторе и получил это в качестве вывода:» Хорошо, и что не так с этим выводом? Чем он отличается от ожидаемого результата?
3. @DStanley Ах, это имеет смысл. Мы только начали создавать методы, и я не был уверен, что с этим не так.
4. @KarlKnechtel Это связано с тем, что результаты равны нулю.
Ответ №1:
Первая ошибка: нигде не вызывается метод Power и нигде не заполняются результаты массива.
Пример решения:
for (long i = 0; i < 5; i )
{
baseNumbers[i] = randInt.Next(intMinBase, intMaxBase);
exponents[i] = randInt.Next(intMinExpo, intMaxExpo);
results[i] = Power(baseNumbers[i], exponents[i]);
}
Комментарии:
1. Это определенно происходит, хотя кажется, что программа говорит, что я не могу преобразовать ‘long’ в ‘int’. Я определенно понимаю, что я забыл его вызвать. Я думал, что на этом закончил, но, похоже, это не так. Существует функция convert, но, похоже, она не сработала так, как я надеялся.