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

ошибка преобразования char - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа на MPI модуле http://www.cyberforum.ru/cpp-beginners/thread201111.html
Здравствуйте! Дана такая задачка следующего вида: q = max(3*MA+5*MB) где MA, MB – матриці размером NxM. Числа N та M задаются пользователем . Все элемент матрицы заполнить целыми числа в диапазоне . Количество узлов 4. Написать паралельную программу с помощью модулей PTHRead & MPI. Эту программу надо написать с помощью MPI. Мучала прошлую ночь.. ну ничего не получается.. #include...
C++ Введение произвольного количества элементов массива Собственно, как это реализовать? Кто не понял, пример: вводим элементы массива до тех пор, пока не будет набрано число 666, или слово stop, или ещё что-то. Извиняюсь за идиотский вопрос, скорее всего это было на лекции, но попасть на неё мне было не суждено. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread201101.html
матрицы C++
Доброй ночи, помогите пожалуйста упростить\оптимизировать\изменить(в лучшую сторону) код следующей программы: #include <iostream> #include <ctime> #include <cmath> using std::cout; using std::cin; using std::endl;
Преобразование типов C++
есть следующая маленькая программка #include <iostream> #include <conio.h> using namespace std; int main() { int oldFunt, oldShilling, oldPenc; //устаревшиая денежная система cout <<"Wwedite funti: ";
C++ оператор цикла WHILE http://www.cyberforum.ru/cpp-beginners/thread201077.html
задание: написать програму при помощи оператора цикла WHILE для подсчета суммы ряда с точность Е=10-4 общий член которого a(c индексом n)=n!/n^n попробовал сделать вот так но препод сказал что не правильно записан n! помогите переделать. #include <cstdlib> #include <iostream> #include <math.h>
C++ Перемножение многочленов Помогите создать программу: Процедура перемножения 2 многочленоа в Каждый из многочленов самножетелей,а также многочлен-результат. Задаётся масивом коэфициентов Аррей(0...Н) где НН-степеь многочленна.. подробнее

Показать сообщение отдельно
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.12.2010, 09:48     ошибка преобразования char
не должно быть различий в размерах массивов, либо везде 80, либо везде 81

C
1
2
3
4
if(fgets(in,81,out1)==NULL)
     {break;};
      in[80]='\0';
      strncpy(a[kolstrA],in,80);};
в a[] все строки имеют длину 80, in же имеет длину 81, это значит, что в a[][] можно записать только 79 символов и последний должен быть нуль-символ, а в in можно записать 80 символов и последний должен быть нуль-символ
в результате получается перекос, если в in попадёт 80 нормальных символов, то 81 делается нуль-символом in[80]='\0'; - это 81й символ

прикинь, в строку, где может быть 79 символов, копируется 80 символов, 80й попадает на место нуль-символа, это значит, что функцию сравнения нельзя применять к такой строке, потому что функция сравнения strcmp() для обеих строк концы определяет по нуль-символам в них

это значит, что при сравнении, если она дойдёт до конца массива, она выйдет за его пределы и будет дальше сравнивать, пока за его пределами не встретит байт со значением равным нулю

поэтому везде либо 80, либо 81, но не по-разному

C
1
for(i=0;i<=kolstrA;i++)
неправильно, нету там столько элементов

C
1
for(i = 0; i < kolstrA; i++)
если kolstrA == 100, то тело цикла выполнится сто раз

из этого же цикла pa[i], представь, если i == 100, это будет обращение к 101му элементу, в то время как char*pa[100]; содержит только сто элементов

C++
1
2
    for (i = 0; i < kolstrA - 1; i++)
        for (j = i + 1; j < kolstrA; j++)
такая сортировка работает неправильно, потому что у тебя логическая ошибка там
ты когда, например, прочитала три строки из файла, у тебя kolstrA равно не три, а два
а зачем тебе два, если у тебя три ?
поэтому тебе нужно либо fgets() перенести в условие цикла из тела, либо при выходе из цикла, когда файл закончился, наращивать kolstrA
 
Текущее время: 05:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru