Форум программистов, компьютерный форум CyberForum.ru

Разница между двумя идентичными программами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прочитать первые 10 символов каждой строки из файла http://www.cyberforum.ru/cpp-beginners/thread692445.html
Мне нужно прочитать первые 10 символов каждой строки из файла. Может функция какая есть, чтобы определенное количество символов строки из файла считывать?
C++ Собственная функция strcat -сцепление строк написать собственную функцию strcat -сцепление строк. Сравнить работу функции со стандартной из библиотеки string.h, если таковая имеется(если стандартной функции не существует, имя функции задания выделено курсивом). Выделение динамической памяти в этой задаче не предполагается. #include <stdio.h> #include <string.h> char *strcat(char *s) char c, *t, *t0=s; for (t=s+strlen... http://www.cyberforum.ru/cpp-beginners/thread692442.html
C++ Оператор цикла. Не могу понять в чем ошибка
Дано натуральное число. Найти сумму цифр этого числа. Верно ли, что число начинается и заканчивается одной и той же цифрой. // laba_2.1.cpp: главный файл проекта. #include "stdafx.h" #include <iostream> #include <locale.h> using namespace System;
C++ оператор сложения двух полиномов. объясните одну строку, пожалуйста
polinom polinom::operator + (const polinom &t){ int i; polinom *result; if(deg>=t.deg){ //если степень первого полинома больше степени второго result=new polinom(deg,koef); for(i=0;i<=t.deg;i++) result->koef=result->koef+t.koef; } else{ //если степень второго полинома больше степень первого result=new...
C++ Конвертирование массива char в long double http://www.cyberforum.ru/cpp-beginners/thread692420.html
#include <iostream> #include <stdlib.h> #include <cstring> using namespace std; class money { private: static const int SIZE = 100; char money_string;
C++ Решение задач Доброго времени дня! помогите пожалуйста составить программы по с++ так как я не понимаю программирование совсем! Вот условия задач: 1) Одна тема - один вопрос 2) Записать программу вычисления значения , (1 + 1/1*1)*(1 + 1/2*2)...(1 + 1/n*n) где n задано. подробнее

Показать сообщение отдельно
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
09.11.2012, 10:10     Разница между двумя идентичными программами
Цитата Сообщение от Parilo Посмотреть сообщение
не понимаю почему j<i в первом случае, а во втором случае j<i-1.
В первом случае последняя итерация избыточна. То есть в первом случае правильнее писать, как и во-втором
C++
1
while (j<i-1)
Допустим у нас в файле 10 строк.
Тогда в массив a записывается только 10 строк. Начиная с a[0] по a[9]. Но так как массив был объявлен на 100 элементов, то все оставшиеся элементы у нас уже заранее объявлены пустыми. И нам не заметно, что в выходной файл на самом деле в конец дописывается пустая строка. Вот и все различие.

А вообще, по хорошему, надо переделать момент
C++
1
2
while (j<i-1)
{ g<<a[j]<< endl; j++;}
Так как
C++
1
<< endl;
всегда дописывается. А зачем нам еще одна дополнительная пустая строка в конце файла? Не нужна.
Что-то типа
C++
1
2
3
4
5
6
while (j<i-1)
{
  g << a[j];
  j++;
  if(j!=i-1) g << endl;
}
И просто так, как мысль: можно перед while (j<i-1) сделать i--. Это позволит избавиться от всех i-1, и заменить это выражение на просто i, чтобы каждый раз, на каждой итерации не надо было компилятору вычитать и сравнивать, а надо было лишь только сравнивать.

Не по теме:

Совершенно к делу не относится, но Ближнее небо - Золотой лес

 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru