Определить где в файле больше нулей - на четных или на нечетных позициях? - C#
Формулировка задачи:
Добрый день! Задача такая: дан файл целых чисел. Определить где больше НУЛЕЙ - на четных или на нечетных позициях.
Вроде разобрался с BinaryWriter и Reader. Вот мой код
с помощью while я прохожусь по файлу,но не могу понять как найти парные и непарные,ведь это не массив.. как обратиться к элементу 1 если он записан как 2 0 0 0 к примеру,там где 4 байта. Помогите пожалуйста: Просто если был бы такой массив целых чисел я бы сделал for а в нём if(array[i]%2==0&&array[i]==0) и т.д. а как сделать тут. Прошу помощи. Спасибо заранее!
Листинг программы
- using System;
- using System.IO;
- using System.Text;
- namespace proga
- {
- class Program
- {
- static void Read(string path) {
- BinaryReader read = new BinaryReader(File.Open(path,FileMode.Open));
- int x1 = read.ReadInt32();
- int d1 = 0;
- int d2=0;
- while (read.PeekChar() != -1)
- {
- // вот тут мой недоалгоритм...
- /* if (x1 % 2 == 0 && x1 == 0)
- {
- d1 += d1 + 1;
- }
- if (x1%2==1&&x1==0) {
- d2 += d2 + 1;
- }
- */
- }
- }
- static void Information(string path) {
- BinaryReader read1 = new BinaryReader(File.Open(path, FileMode.Open));
- while (read1.PeekChar() != -1)
- {
- Console.WriteLine("{0,4}",read1.Read());
- }
- read1.Close();
- } //выводим содержимое нашего файла
- static void Create(int x) {
- try
- {
- Random rand = new Random();
- string path =@"D:\proga\note0.dat";//путь
- BinaryWriter write = new BinaryWriter(File.Open(path, FileMode.OpenOrCreate));
- for (int i = 0; i < 20; i++)
- {
- x = rand.Next(0,50);
- write.Write(x);
- }
- write.Close();//закрЫваем наш поток
- Information(path);
- Read(path);
- }
- catch (Exception e) {
- Console.WriteLine(e.Message);
- }
- }
- static void Main(string[] args)
- {
- try
- {
- Console.WriteLine("***");
- Create(0);
- }
- catch (Exception e) {
- Console.WriteLine(e.Message);
- }
- }
- }
- }
Решение задачи: «Определить где в файле больше нулей - на четных или на нечетных позициях?»
textual
Листинг программы
- using System;
- using System.IO;
- using System.Text;
- namespace proga
- {
- class Program
- {
- static void Read(string path) {
- BinaryReader read = new BinaryReader(File.Open(path,FileMode.Open));
- int temp;
- int i = 0;
- int s1 = 0;
- int s2 = 0;
- while (read.PeekChar() != -1)
- {
- i++;
- temp = read.ReadInt32();
- if (i%2==1&&temp==0) {
- s1 += 1;
- }
- if (i%2==0&&temp==0)
- {
- s2 += 1;
- }
- }
- read.Close();
- if (s1 > s2)
- {
- Console.WriteLine("На парных позициях больше");
- }
- else if (s1<s2)
- {
- Console.WriteLine("На непарных больше");
- }
- }
- static void Information(string path) {
- BinaryReader read1 = new BinaryReader(File.Open(path, FileMode.Open));
- while (read1.PeekChar()!= -1)
- {
- Console.WriteLine("{0,4}",read1.ReadInt32());
- }
- read1.Close();
- } //выводим содержимое нашего файла
- static void Create(int x) {
- try
- {
- Random rand = new Random();
- string path =@"D:\proga\random2.dat";//путь
- BinaryWriter write = new BinaryWriter(File.Open(path, FileMode.OpenOrCreate));
- for (int i = 0; i < 20; i++)
- {
- x = rand.Next(0,6);
- write.Write(x);
- }
- write.Close();//закрЫваем наш поток
- Information(path);
- Read(path);
- }
- catch (Exception e) {
- Console.WriteLine(e.Message);
- }
- }
- static void Main(string[] args)
- {
- try
- {
- Console.WriteLine("***");
- Create(0);
- }
- catch (Exception e) {
- Console.WriteLine(e.Message);
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д