sách gpt4 ai đã đi

Tôi đang cố gắng "dịch" mã c++ cũ của mình thành mã c#

In lại 作者:行者123 更新时间:2023-11-30 02:51:59 28 4
mua khóa gpt4 Nike

我正在尝试将我的旧 C++ 代码“翻译”成头条新闻所暗示的 C# 代码。问题是我是 C# 中的新手,并不是所有的东西都像 C++ 中那样。在 C++ 中这些解决方案运行良好,但在 C# 中只是不能。我将向您展示我正在运行的旧 c++ 代码和“应该”运行的 c# 代码。如果我使用 for 循环,结果始终为 0(零)。此外,当我使用(arrayname).Sum() 时。我尝试了一些在网上找到的其他解决方案,但没有一个有效。结果显示(零)或抛出异常。帮助!这是我的 C++ 代码和 C#,其中并非所有函数都可用,因为我只测试了第一个。如果它不适用于第一个,则不会对其他函数起作用。

这是我的 C# 代码:

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

class BrojniNiz {
decimal b;
public static int i;
public decimal[] broj = new decimal[i];
public Decimal Unos_brojeva() {
Console.WriteLine("Unesi broj clanova niza: ");
decimal[] broj =
new decimal[Convert.ToInt32(Console.ReadLine())];

// odredjuje se tip niza,tj. tip promenljive koje ce biti primane u niz
// (ovo se odnosi na " broj ").

Console.WriteLine("Unesi brojeve: ");

for ( i = 0; i < broj.Length; i++) {
// " i " je broj clanova niza(njegova " duzina "),tj. konacan indeks.
broj[i] = (Convert.ToDecimal (Console.ReadLine()));
}

Console.WriteLine("Unos brojeva je zavrsen");
trả về 0;
}

Decimal Aritmeticka_sredina() {
// for (i = 0; i < broj.Length; i++)
// b = broj[i];
// b = b + broj[i];
// b += broj[i];

b = broj.Sum();

// i++;
//Console.WriteLine(i);

Console.WriteLine(b);

//Console.WriteLine(broj.Length);
trả về 0;
}

public int Meni() {
Console.WriteLine("Unesi broj operacije po zelji: \n ");
int a =Convert.ToInt32(Console.ReadLine());
switch (a) {
case 1:
Aritmeticka_sredina();
phá vỡ;
case 2:
// Harmonijska_sredina();
phá vỡ;
case 3:
// Geometrijska_sredina();
phá vỡ;
case 4:
// Kvadratna_sredina();
phá vỡ;
mặc định:
Console.WriteLine("\nUneli ste pogresne parametre..._\a\a\a\n");
phá vỡ;
}
trả về 0;
}

static int Main() {
BrojniNiz brojka;
brojka=new BrojniNiz();
brojka.Unos_brojeva();
brojka.Meni();
trả về 0;
}
}

这是我的 C++ 代码:

#include 
#include
#include
#include
#include
#include
sử dụng không gian tên std;

class Racniz {
công cộng:
Racniz();
~Racniz();
string lozinka;
float unos_brojeva();
int Meni();
float Aritmeticka_sredina();
float Harmonijska_sredina();
double Geometrijska_sredina();
float Kvadratna_sredina();
void Pauza();
riêng tư:
số nguyên a;
float unos [30];
int n;
float A;
float sumaA;
float H;
float sumaH;
double sumaG;
double stepen;
double G;
double n1;
float sumaK;
float medjusuma;
float K;
};

int chính() {
Racniz racunanje;
racunanje.unos_brojeva();
racunanje.Meni();
racunanje.Pauza();
}

Racniz::Racniz() {
sndPlaySound("Crysis 2 menu music-theme.wav", SND_ASYNC);
cout<<"Uneti sifru za rad u programu..._\n"<<>
cin>>lozinka;
if(lozinka=="struwellpeter") {
cout<<"\nSada ce se startovati program za statisticke proracune:\n"<<>
} khác {
cout<<"\nPogresili ste lozinku,program ce sada izaci..._\a\a\a\n"<<>
exit (0);
}
}

Racniz::~Racniz() {
cout<<"Kraj izvrsenja proracuna..._\n"<<>
}

float Racniz::unos_brojeva() {
cout<<"Unesi 30 brojeva:\n"<<>
for(n=0;n<30;n++)
cin>>unos[n];
cout<<"\n"<<>
trả về 0;
}

int Racniz::Meni() {
cout<<"Unesi broj operacije po zelji: \n "<<>
cout<<"------------------------------\n"<<>
cout<<"1.Aritmeticka sredina: \n "<<>
cout<<"2.Harmonijska sredina: \n "<<>
cout<<"3.Geometrijska sredina: \n "<<>
cout<<"4.Kvadratna sredina: \n "<<>
cin>>a;
switch(a) {
case 1:
Aritmeticka_sredina();
phá vỡ;
case 2:
Harmonijska_sredina();
phá vỡ;
case 3:
Geometrijska_sredina();
phá vỡ;
case 4:
Kvadratna_sredina();
phá vỡ;
mặc định:
cout<<"\nUneli ste pogresne parametre..._\a\a\a\n"<<>
phá vỡ;
}
trả về 0;
}

float Racniz::Aritmeticka_sredina(){
float A=0;
float sumaA=0;
for(n=0;n<30;n++)
sumaA=sumaA + unos[n];
A=sumaA/n;
cout<<"-------------------------"<<>
cout<<"SumaA je = "<<><>
cout<<"-------------------------"<<>
cout<<"Aritmeticka sredina je = "<<><>
trả về 0;
}

float Racniz::Harmonijska_sredina() {
float H=0;
float sumaH=0;
for(n=0;n<30;n++)
sumaH=sumaH + 1/unos[n];
H=n/sumaH;
cout<<"-------------------------"<<>
cout<<"SumaH je = "<<><>
cout<<"-------------------------"<<>
cout<<"Harmonijska sredina je = "<<><>
trả về 0;
}

double Racniz::Geometrijska_sredina() {
//Interval od ~ -19.2 do ~ 19.2 ,da ne bi doslo do "overflow-a".
double sumaG=unos[0];
double stepen=0;
double G=0;
for(n=1;n<30;n++)
sumaG=sumaG * unos[n];
double n1=n;
stepen=stepen+1/n1;
G=pow(sumaG,stepen);
cout<<"-------------------------"<<>
cout<<"SumaG je = "<<><>
cout<<"-------------------------"<<>
cout<<"Geometrijska sredina je = "<<><>
trả về 0;
}

float Racniz::Kvadratna_sredina(){
float sumaK=0;
float medjusuma=0;
float K=0;
for(n=0;n<30;n++)
sumaK=sumaK + pow(unos[n],2);
medjusuma=medjusuma + sumaK/n;
K=K + sqrt(medjusuma);
cout<<"-------------------------"<<>
cout<<"SumaK je = "<<><>
cout<<"-------------------------"<<>
cout<<"Medjusuma je = "<<><>
cout<<"-------------------------"<<>
cout<<"Kvadratna sredina je = "<<><>
trả về 0;
}

void Racniz::Pauza(){
system("pause");
}

感谢本论坛的帮助。我成功地将c++代码翻译成c#。这里是:

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



class BrojniNiz
{


public static int i=0;
public double[] broj = new double[i];



public double Unos_brojeva()
{

Console.WriteLine("Unesi broj clanova niza: ");
broj = new double[Convert.ToInt32(Console.ReadLine())]; // odredjuje se tip niza,tj. tip promenljive koje ce biti primane u niz(ovo se odnosi na " broj ").
Console.WriteLine("Unesi brojeve: ");
for ( i = 0; i < broj.Length; i++) // " i " je broj clanova niza(njegova " duzina "),tj. konacan indeks.
{
broj[i] = (Convert.ToDouble(Console.ReadLine()));

}

Console.WriteLine("Unos brojeva je zavrsen");
trả về 0;
}


double Aritmeticka_sredina()
{

double b = 0;
for (i = 0; i < broj.Length; i++)
b = (b + broj[i]);
Console.WriteLine("Rezultat je sledeci: " + (b/i));
trả về 0;


}

double Harmonijska_sredina()
{

double H = 0;
double sumaH = 0;
for(i=0;i<>
sumaH=sumaH + 1/broj[i];
H=i/sumaH;
Console.WriteLine("Rezultat je sledeci: " + H);
trả về 0;


}
double Geometrijska_sredina()
{

double sumaG = broj[0];
double stepen = 0;
double G = 0;
for (i = 1; i < broj.Length; i++)
sumaG = sumaG * broj[i];
double n1 = i;
stepen = stepen + 1 / n1;
G = Math.Pow(sumaG, stepen);
Console.WriteLine("Rezultat je sledeci: " + G);
trả về 0;

}

double Kvadratna_sredina()
{

double sumaK = 0;
double medjusuma = 0;
double K = 0;
for(i=0;i<>
sumaK = sumaK + Math.Pow(broj[i], 2);
medjusuma=medjusuma + sumaK/i;
K=K + Math.Sqrt(medjusuma);
Console.WriteLine("Rezultat je sledeci: " + K);
trả về 0;

}

public int Meni()
{

Console.WriteLine("Unesi broj operacije po zelji: \n ");
int a =Convert.ToInt32(Console.ReadLine());

switch (a)
{

case 1:
Aritmeticka_sredina();
phá vỡ;
case 2:
Harmonijska_sredina();
phá vỡ;
case 3:
Geometrijska_sredina();
phá vỡ;
case 4:
Kvadratna_sredina();
phá vỡ;
mặc định:
Console.WriteLine("\nUneli ste pogresne parametre..._\a\a\a\n");
phá vỡ;

}
trả về 0;
}






static int Main()
{

BrojniNiz brojka;
brojka=new BrojniNiz();
brojka.Unos_brojeva();
brojka.Meni();
trả về 0;
}

}

1 Câu trả lời

问题出在 Unos_brojeva 函数中。您正在定义一个名为 broj 的新局部范围变量,而不是修改您为 BrojniNiz 类定义的 broj 数组。

所以,替换

decimal[] broj = new decimal[Convert.ToInt32(Console.ReadLine())];

broj = new decimal[Convert.ToInt32(Console.ReadLine())];

关于c# - 我正在尝试将我的旧 c++ 代码 "translate"转换为 c# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19343580/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com