Сторінка 1 з 9

Програмування

ПовідомленняДодано: 31 березня 2011, 15:19
Batarchuk
Вот программка, по условию она должна считать количество битов "00" (пар нолей) целого числа. Но когда ввожу тестовое число 2565989889 то ответ не правильный. Может ли кто-то подсказать с чем это связано и как следует подкоректировать программу. Вот код :
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
using namespace std;
void print_bits (unsigned n)
{
int bit;
for (bit = sizeof(unsigned)*8 - 1; bit >= 0; bit--)
{
((n >> bit) & 01) ? putchar ('1') : putchar ('0');
if (bit % 4 == 0) putchar (' ');
}
}

main ()
{
char con;

do
{
unsigned n;
int count = 0;
cout << "Input int" << endl;
cin >> n;
print_bits (n);
n = ~ n;
do
{
if (n & 01)
{
n >>= 1;
}
if (n & 01)
{
count++;
n >>= 1;

}

else n >>= 1;


}

while (n != '\0');
cout<<endl;

cout << "Number of *00* = " << count << endl;
cout <<"Continue? (y/n)";
cin>>con;
}
while (con =='y');

system ("PAUSE");
return 0;
}

Re: Програмування

ПовідомленняДодано: 31 березня 2011, 16:53
Obi-Van
все правильно оно считает
1001 1000 1111 0001 1110 0110 0|00|0 0|001

Re: Програмування

ПовідомленняДодано: 14 квітня 2011, 18:32
Ivan
лаба 4 вариант 10??????

Re: Програмування

ПовідомленняДодано: 14 квітня 2011, 20:59
Староста
Визначити структуру для збереження інформації про час (години, хвилини, секунди). Написати функцію, яка визначає величину інтервалу між двома заданими моментами часу.

#include <iostream>

using namespace std;
struct TTimes
{
long h, m, s;
}
long time interval (TTime a, TTime b)
{
long x,y;
x = 3600* a.h + 60* a.m + a.s;
y = 3600* b.h + 60* b.m + b.s;
return abs(x-y);

}

int main()
{
TTime a, b;
cout <<"Enter h, m ,s:";
cin >> b.h >> b.m >> b.s;
cout << "interval" << timeinterval (a,b) <<"seconds";
getch ();
return 0;


}

Re: Програмування

ПовідомленняДодано: 14 квітня 2011, 21:03
Sergiych
лабораторна 4 вариант 9

Re: Програмування

ПовідомленняДодано: 14 квітня 2011, 21:23
Ivan
задана не порожня послідовність слів з латинських літер. Останнім символом цієї послідовності є крапка. Словами називаються групи символів , які розділені одним чи кількома пробілами та не містять пробілів усередені себе.


для заданої вище послідовності визначити накоротше слово!

Re: Програмування

ПовідомленняДодано: 14 квітня 2011, 22:03
Василь
У меня нету заданий, пишите их!

Re: Програмування

ПовідомленняДодано: 14 квітня 2011, 22:04
Greg
Ось, Вася, зроби пліз! :) Я думаю для тебе не важко буде! :D
Masiv.rar
Задачка по масиву.
(744 байт) Завантажено 536 разів

Re: Програмування

ПовідомленняДодано: 15 квітня 2011, 00:20
Василь
Староста написав:Визначити структуру для збереження інформації про час (години, хвилини, секунди). Написати функцію, яка визначає величину інтервалу між двома заданими моментами часу.

#include <iostream>

using namespace std;
struct TTimes
{
long h, m, s;
}
long time interval (TTime a, TTime b)
{
long x,y;
x = 3600* a.h + 60* a.m + a.s;
y = 3600* b.h + 60* b.m + b.s;
return abs(x-y);

}

int main()
{
TTime a, b;
cout <<"Enter h, m ,s:";
cin >> b.h >> b.m >> b.s;
cout << "interval" << timeinterval (a,b) <<"seconds";
getch ();
return 0;


}


Сказалаб, шо не шариш ))
Код: Виділити все
/*
 * Визначити структуру для збереження інформації про час
 * (години, хвилини, секунди). Написати функцію, яка визначає величину
 * інтервалу між двома заданими моментами часу.
 * Горбаченко Василь
 */
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

using namespace std;
struct TTime{
       long h, m, s;
};

long timeinterval (TTime a, TTime b)
{
 long x,y;
 x = 3600* a.h + 60* a.m + a.s;
 y = 3600* b.h + 60* b.m + b.s;
 return abs(x-y);
}

int main()
{
TTime a, b;
cout <<"Enter h, m ,s:";
cin >> a.h >> a.m >> a.s;
cout <<"Enter h, m ,s:";
cin >> b.h >> b.m >> b.s;

cout << "interval = " << timeinterval (a,b) <<" seconds"<<endl;
getch ();
return 0;


}

Re: Програмування

ПовідомленняДодано: 15 квітня 2011, 00:22
Василь
Sergiych написав:лабораторна 4 вариант 9

У меня нету задания!!!