Дано четырёх значное число. Нужно написать программу, которая сможет посчитать сумму цифр, из которых оно сотоит(например, сумма цифр числа 2012 равна 2+0+1+2=4). Я понимаю, что это легкое задание. Но подскажите пожалуйста как его сделать? какую функцию использовать чтобы разбить число 2012 на 2,0,1,2?
В C это делается так: Code: /* Пусть в переменной n у нас находится 4-ех значное число (лучше всего подойдет тип unsigned short int). В переменных a, b, c, d мы будем заисывать цифры этого числа; эти переменные должны занимать в памяти всего по 1 байту, поэтому используем тип char. */ unsigned short int n; // Считываем n и выполняем любой другой код. char a, b, c, d; a = n / 1000; b = n % 1000 / 100; c = n % 100 / 10; d = n %10; char sum = a + b + c + d; В C# должно быть приблизительно также.
А если число произвольного размера? Тогда уж типа: Code: int digit = 2012; int summ = 0; do { summ += digit % 10; digit /= 10; } while (digit > 0); Console.WriteLine(summ);
А как это сделать в windows forms? чтобы при вводе числа в текстбокс он выполнял такие же действия? и выводил в другой текстбокс?
Ура! я сделал))) вот как получилось: Code: Int32 n, a, b, c, d, summ; n = Convert.ToInt32(textBox1.Text); a = n / 1000; b = n % 1000 / 100; c = n % 100 / 10; d = n % 10; summ = a + b + c + d; textBox2.Text = summ.ToString(); Всем огромное спасибо!!!
Всем привет. Опять не получается написать программу( Нужно написать программу с помощью ветвлений, которая будет печатать на экране 3 числаю введённых с клавиатуры, в порядке возрастания -введите 3 числа ->859 -результат сортировки 589
http://www.cyberforum.ru/csharp-net/thread42336.html http://msdn.microsoft.com/ru-ru/library/bb330922%28vs.80%29.aspx
ветвление с помощью if и else Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { class Program { static void Main(string[] args) { int number = 0; while (true) { Console.WriteLine("Enter number:"); try { Console.Clear(); number = Convert.ToInt32(Console.ReadLine()); if (number.ToString().Length == 3) { break; } else{Console.WriteLine("Invalid number length!");} } catch{ Console.WriteLine("Invalid number, please try again!");} } int value = 0; int[] intarray = { 0, 0, 0 }; for (int i = 0; i < 3; i++) { value= number % 10; intarray[i] = value; number /= 10; } int[] newintarray = {0,0,0}; if (intarray[0] >= intarray[1] && intarray[0] >= intarray[2]) { newintarray[2] = intarray[0]; if(intarray[1] >= intarray[2]) { newintarray[1] = intarray[1]; newintarray[0] = intarray[2]; } else{ newintarray[1] = intarray[2]; newintarray[0] = intarray[1]; } } if (intarray[0] <= intarray[1] && intarray[0] <= intarray[2]) { newintarray[0] = intarray[0]; if (intarray[1] >= intarray[2]) { newintarray[2] = intarray[1]; newintarray[1] = intarray[2]; } else { newintarray[2] = intarray[2]; newintarray[1] = intarray[1]; } } if (intarray[0] >= intarray[1] && intarray[0] <= intarray[2]) { newintarray[0] = intarray[1]; newintarray[1] = intarray[0]; newintarray[2] = intarray[2]; } if (intarray[0] <= intarray[1] && intarray[0] >= intarray[2]) { newintarray[0] = intarray[2]; newintarray[1] = intarray[0]; newintarray[2] = intarray[1]; } Console.WriteLine(newintarray[0].ToString() + newintarray[1].ToString() + newintarray[2].ToString()); Console.Read(); } } }
Делаешь по аналогии с первым кодом, все цифры запоминаешь в массиве, а затем их сортируешь. Раз ветвления, то сортируешь простым сравнением 3-х чисел друг с другом.
ну, тогда сначала садись за книги, а потом уже людей спрашивай что не получается. За тебя никто делать не будет просто так.
Всем спасибо. Всё я сделал)) Code: private void button1_Click(object sender, EventArgs e) { Int32 num, a, b, c, num1, num2, num3; num = Convert.ToInt32(textBox1.Text); a = num / 100; b = num % 100 / 10; c = num % 100 % 10; num1 = 0; num2 = 0; num3 = 0; if (a >= b) if (a >= c) num1 = a; if (b >= c) if (b >= a) num1 = b; if (c >= a) if (c >= b) num1 = c; if (num1 == a) if (c >= b) num2 = c; else num2 = b; if (num1 == b) if (c >= a) num2 = c; else num2 = a; if (num1 == c) if (a >= b) num2 = a; else num2 = b; if (num2 == a) if (b >= c) num3 = c; else num3 = b; if (num2 == b) if (a >= c) num3 = c; else num3 = a; if (num2 == c) if (b >= a) num3 = a; else num3 = b; textBox2.Text = num3.ToString(); textBox3.Text = num2.ToString(); textBox4.Text = num1.ToString(); } только как сделать чтобы число выводилось в одном текст боксе?
Всем привет! подскажите пожалуйста. как переделать этот код в framework 2.0. Пробовал по разному что-то не получается( Code: string imia, to, log; log = Convert.ToString(textBox4.Text); imia = Convert.ToString(textBox6.Text); to = Convert.ToString(textBox1.Text); string str = @log; string result1 = str.Substring(str.IndexOf("@", 0)); using (MailMessage mm = new MailMessage(imia + "<" + log + ">", to)) { string pass, tema, soob; soob = Convert.ToString(textBox3.Text); tema = Convert.ToString(textBox2.Text); pass = Convert.ToString(textBox5.Text); mm.Subject = tema; mm.Body = soob; mm.IsBodyHtml = false; if (result1 == "@mail.ru") result1 = "smtp.mail.ru"; if (result1 == "@gmail.com") result1 = "smtp.gmail.com"; if (result1 == "@yandex.ru") result1 = "smtp.yandex.ru"; using (SmtpClient sc = new SmtpClient(result1, 25)) { sc.EnableSsl = true; sc.DeliveryMethod = SmtpDeliveryMethod.Network; sc.UseDefaultCredentials = false; sc.Credentials = new NetworkCredential(log, pass); sc.Send(mm); try { const string message = "Сообщение отправленно"; const string caption = "Сообщение отправленно"; var result = MessageBox.Show(message, caption, MessageBoxButtons.OK); } catch { MessageBox.Show("Сообщение не отправленно"); } } }