Консультация № 184960
25.12.2011, 23:00
62.27 руб.
0 1 1
Здравствуйте! Прошу помощи в следующем вопросе: В приведённом ниже коде не могу понять почему переменной d в строке
d = Convert.ToDouble(N.HowMuchА / N.HowMuchSimbol); присваивается значение 0 если в моём текстовом файле N.HowMuchА = 4 ,а N.HowMuchSimbol = 23? Спасибо!

Приложение:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace simbols
{
public struct HowSimbol
{
int А;
int Б;
int В;
int Г;
int Д;
int Е;
int Ё;
int Ж;
int З;
int И;
int Й;
int К;
int Л;
int М;
int Н;
int О;
int П;
int Р;
int С;
int Т;
int У;
int Ф;
int Х;
int Ц;
int Ч;
int Ш;
int Щ;
int Ъ;
int Ы;
int Ь;
int Э;
int Ю;
int Я;
int Space;
int Simbol;
public int HowMuchА
{
get { return А; }
set { А++; }
}
public int HowMuchБ
{
get { return Б; }
set { Б++; }
}
public int HowMuchВ
{
get { return В; }
set { В++; }
}
public int HowMuchГ
{
get { return Г; }
set { Г++; }
}
public int HowMuchД
{
get { return Д; }
set { Д++; }
}
public int HowMuchЕ
{
get { return Е; }
set { Е++; }
}
public int HowMuchЁ
{
get { return Ё; }
set { Ё++; }
}
public int HowMuchЖ
{
get { return Ж; }
set { Ж++; }
}
public int HowMuchЗ
{
get { return З; }
set { З++; }
}
public int HowMuchИ
{
get { return И; }
set { И++; }
}
public int HowMuchЙ
{
get { return Й; }
set { Й++; }
}
public int HowMuchК
{
get { return К; }
set { К++; }
}
public int HowMuchЛ
{
get { return Л; }
set { Л++; }
}
public int HowMuchМ
{
get { return М; }
set { М++; }
}
public int HowMuchН
{
get { return Н; }
set { Н++; }
}
public int HowMuchО
{
get { return О; }
set { О++; }
}
public int HowMuchП
{
get { return П; }
set { П++; }
}
public int HowMuchР
{
get { return Р; }
set { Р++; }
}
public int HowMuchС
{
get { return С; }
set { С++; }
}
public int HowMuchТ
{
get { return Т; }
set { Т++; }
}
public int HowMuchУ
{
get { return У; }
set { У++; }
}
public int HowMuchФ
{
get { return Ф; }
set { Ф++; }
}
public int HowMuchХ
{
get { return Х; }
set { Х++; }
}
public int HowMuchЦ
{
get { return Ц; }
set { Ц++; }
}
public int HowMuchЧ
{
get { return Ч; }
set { Ч++; }
}
public int HowMuchШ
{
get { return Ш; }
set { Ш++; }
}
public int HowMuchЩ
{
get { return Щ; }
set { Щ++; }
}
public int HowMuchЪ
{
get { return Ъ; }
set { Ъ++; }
}
public int HowMuchЫ
{
get { return Ы; }
set { Ы++; }
}
public int HowMuchЬ
{
get { return Ь; }
set { Ь++; }
}
public int HowMuchЭ
{
get { return Э; }
set { Э++; }
}
public int HowMuchЮ
{
get { return Ю; }
set { Ю++; }
}
public int HowMuchЯ
{
get { return Я; }
set { Я++; }
}
public int HowMuchSpace
{
get { return Space; }
set { Space++; }
}
public int HowMuchSimbol
{
get { return Simbol; }
set { Simbol++; }

}
}
class Program
{

string s1;

string[] Stroky;

public void pathfile(string str)

{

Stroky = File.ReadAllLines(str, Encoding.Default);// сохраняем в массив текстовой файл
s1 = str;
}

HowSimbol Rashet()
{HowSimbol X = new HowSimbol();
int i = 0;
string stroka;
char p;
while (i <= Stroky.Length - 1)
{
{
stroka = Stroky[i];
stroka = stroka.ToUpper();
}
for (int a = 0; a < stroka.Length ;a++ )
{
p = stroka[a];
switch (p)
{
case 'А':
X.HowMuchА = X.HowMuchА;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Б':
X.HowMuchБ = X.HowMuchБ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;

case 'В':
X.HowMuchВ = X.HowMuchВ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Г':
X.HowMuchГ = X.HowMuchГ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Д':
X.HowMuchД = X.HowMuchД;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Е':
X.HowMuchЕ = X.HowMuchЕ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ё':
X.HowMuchЁ = X.HowMuchЁ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ж':
X.HowMuchЖ = X.HowMuchЖ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'З':
X.HowMuchЗ = X.HowMuchЗ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'И':
X.HowMuchИ = X.HowMuchИ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Й':
X.HowMuchЙ = X.HowMuchЙ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'К':
X.HowMuchК = X.HowMuchК;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Л':
X.HowMuchЛ = X.HowMuchЛ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'М':
X.HowMuchМ = X.HowMuchН;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Н':
X.HowMuchН = X.HowMuchН;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'О':
X.HowMuchО = X.HowMuchО;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'П':
X.HowMuchП = X.HowMuchП;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Р':
X.HowMuchР = X.HowMuchР;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'С':
X.HowMuchС = X.HowMuchС;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Т':
X.HowMuchТ = X.HowMuchТ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'У':
X.HowMuchУ = X.HowMuchУ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ф':
X.HowMuchФ = X.HowMuchФ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Х':
X.HowMuchХ = X.HowMuchХ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ц':
X.HowMuchЦ = X.HowMuchЦ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ч':
X.HowMuchЧ = X.HowMuchЧ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ш':
X.HowMuchШ = X.HowMuchШ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Щ':
X.HowMuchЩ = X.HowMuchЩ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ъ':
X.HowMuchЪ = X.HowMuchЪ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ы':
X.HowMuchЫ = X.HowMuchЫ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ь':
X.HowMuchЬ = X.HowMuchЬ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Э':
X.HowMuchЭ = X.HowMuchЭ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Ю':
X.HowMuchЮ = X.HowMuchЮ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case 'Я':
X.HowMuchЯ = X.HowMuchЯ;
X.HowMuchSimbol = X.HowMuchSimbol;
break;
case ' ':
X.HowMuchSpace = X.HowMuchSpace;
break;
case ',':
stroka = stroka.Remove(a, 1);
a--;
break;
case '-':
stroka = stroka.Remove(a, 1);
a--;
break;
case '.':
stroka = stroka.Remove(a, 1);
a--;
break;
case ':':
stroka = stroka.Remove(a, 1);
a--;
break;
case ';':
stroka = stroka.Remove(a, 1);
a--;
break;
}
}
Stroky[i] = stroka;
i++;
}
File.WriteAllLines(s1, Stroky, Encoding.Default);
return X;
}


static void Main(string[] args)
{

Console.WriteLine("Enter path");
string s = Console.ReadLine();
Program R = new Program();
R.pathfile(s);

HowSimbol N = R.Rashet();

d = Convert.ToDouble(N.HowMuchА / N.HowMuchSimbol);
Console.WriteLine("d = {0}", d);
Console.WriteLine("Число букв А в тексте = {0}", N.HowMuchА / N.HowMuchSimbol);
Console.WriteLine("Число букв Б в тексте = {0}", N.HowMuchБ);
Console.WriteLine("Число букв В в тексте = {0}", N.HowMuchВ);
Console.WriteLine("Число букв Г в тексте = {0}", N.HowMuchГ);
Console.WriteLine("Число букв Д в тексте = {0}", N.HowMuchД);
Console.WriteLine("Число букв Е в тексте = {0}", N.HowMuchЕ);
Console.WriteLine("Число букв Ё в тексте = {0}", N.HowMuchЁ);
Console.WriteLine("Число букв Ж в тексте = {0}", N.HowMuchЖ);
Console.WriteLine("Число букв З в тексте = {0}", N.HowMuchЗ);
Console.WriteLine("Число букв И в тексте = {0}", N.HowMuchИ);
Console.WriteLine("Число букв Й в тексте = {0}", N.HowMuchЙ);
Console.WriteLine("Число букв К в тексте = {0}", N.HowMuchК);
Console.WriteLine("Число букв Л в тексте = {0}", N.HowMuchЛ);
Console.WriteLine("Число букв М в тексте = {0}", N.HowMuchМ);
Console.WriteLine("Число букв Н в тексте = {0}", N.HowMuchН);
Console.WriteLine("Число букв О в тексте = {0}", N.HowMuchО);
Console.WriteLine("Число букв П в тексте = {0}", N.HowMuchП);
Console.WriteLine("Число букв Р в тексте = {0}", N.HowMuchР);
Console.WriteLine("Число букв С в тексте = {0}", N.HowMuchС);
Console.WriteLine("Число букв Т в тексте = {0}", N.HowMuchТ);
Console.WriteLine("Число букв У в тексте = {0}", N.HowMuchУ);
Console.WriteLine("Число букв Ф в тексте = {0}", N.HowMuchФ);
Console.WriteLine("Число букв Х в тексте = {0}", N.HowMuchХ);
Console.WriteLine("Число букв Ц в тексте = {0}", N.HowMuchЦ);
Console.WriteLine("Число букв Ч в тексте = {0}", N.HowMuchЧ);
Console.WriteLine("Число букв Ш в тексте = {0}", N.HowMuchШ);
Console.WriteLine("Число букв Щ в тексте = {0}", N.HowMuchЩ);
Console.WriteLine("Число букв Ъ в тексте = {0}", N.HowMuchЪ);
Console.WriteLine("Число букв Ы в тексте = {0}", N.HowMuchЫ);
Console.WriteLine("Число букв Ь в тексте = {0}", N.HowMuchЬ);
Console.WriteLine("Число букв Э в тексте = {0}", N.HowMuchЭ);
Console.WriteLine("Число букв Ю в тексте = {0}", N.HowMuchЮ);
Console.WriteLine("Число букв Я в тексте = {0}", N.HowMuchЯ);
Console.WriteLine("Число пробелов в тексте = {0}", N.HowMuchSpace);
Console.WriteLine("Общее количество букв в тексте = {0}", N.HowMuchSimbol);
Console.ReadLine();

}
}
}

Обсуждение

давно
Профессионал
848
1596
25.12.2011, 23:27
общий
это ответ
Здравствуйте, MIXAIL!
Дело в том, что Вы делите два int, следовательно и результат деления тоже int, т.е. в данном случае целая часть это ноль.
Переменные следует сначала привести к double, для получения желаемого результата.
d=(double)N.HowMuchА/(double)N.HowMuchSimbol;
кстати не увидел в Вашей программе объявления переменной d.
Форма ответа