описался извините тройки чисел те например вводится цыфры 123187456 вывод должен быть 123 456 187 выводиться не должно така как 7>8 Помогите плиз очень надо
источник: http://www.intuit.ru/department/se/pbmsu/8/6.html + http://www.firststeps.ru/html/js/r.php?3 Это не я придумал
Я доверяю проверенным гуру типо Страуструпа, а не преподавателям с интуита. Переношу обсуждение в личку.
4p3 Всё правильно он говорит, "И" или конъюнкция или логическое умножение, таблица истинности: x y x&y 1 1 1 1 0 0 0 1 0 0 0 0 умножением называется потому что результат равен 1 только если оба операнда = 1. "ИЛИ" или дизъюнкция или логическое сложение, таблица истинности: x y x|y 1 1 1 1 0 1 0 1 1 0 0 0 я думаю очевидно почему называется сложением =) Насколько я понял речь идёт о перемножении 2-х чисел в двоичной системе счислений, в этом случае criz не прав потому что перемножать надо так же как и в случае с десятичными числами, только брать результат по модулю 2. C-шный код для работы с двоичной системой: PHP: Binary arithmatic #include<stdio.h> #include<conio.h> #include<string.h> #include<math.h> void b_to_d(char result[]); //binary to decimal void d_to_b(int dec,char binary[]); // decimal to binary main() { int ch,n1,n2,i=0,j,k,l,carry,r,x1,x2,x; char bn1[30],bn2[30],result[30],binary[30]; char multi[30][30]; clrscr(); do { printf("<1> input first operand \n"); printf("<2> input second operand \n"); printf("<3> binary addition \n"); printf("<4> binary subtraction \n"); printf("<5> binary multiplation \n"); printf("<6> result to decimal \n"); printf("<7> Exit \n\n"); do { printf("enter your choice "); scanf("%d",&ch); }while(ch>7 || ch<1); switch (ch) { case 1: printf("\n input first operand "); scanf("%d",&n1); x1=n1; d_to_b(n1,binary); for(i=0;binary[i]!='\0';++i) bn1[i]=binary[i]; bn1[i]='\0'; break; case 2: printf("\n input second operand "); scanf("%d",&n2); x2=n2; d_to_b(n2,binary); for(i=0;binary[i]!='\0';++i) bn2[i]=binary[i]; bn2[i]='\0'; break; case 3: //addition for(i=0;i<30;++i) //reset result result[i]='\0'; carry=0; if(strlen(bn1)<strlen(bn2)) r=strlen(bn2); else r=strlen(bn1); for(i=0;i<r;++i) { result[i+1]='\0'; if(carry==0) { if(bn1[i]-48+bn2[i]-48+carry==1) result[i]=bn1[i]-48+bn2[i]-48+48; else result[i]=0+48; } else { if(bn1[i]-48+bn2[i]-48+carry==2) result[i]=0+48; else result[i]=1+48; } if(bn1[i]-48+bn2[i]-48+carry>1) carry=1; else carry=0; if(carry==1) result[i+1]=carry+48; } printf("\n%s\n",strrev(result)); break; case 4: //subtraction for(i=0;i<30;++i) //reset result result[i]='\0'; carry=0; if(strlen(bn1)<strlen(bn2)) r=strlen(bn2); else r=strlen(bn1); for(i=0;i<r;++i) { result[i+1]='\0'; if(bn1[i]<bn2[i]) carry=2,--bn1[i+1]; else carry=0; if(carry+bn1[i]-48-bn2[i]+48==1) result[i]=1+48; else if(carry+bn1[i]-48-bn2[i]+48==0) result[i]=0+48; } printf("\n%s\n",strrev(result)); break; case 5: //binary multiplication complited on 27-03-2004 for(i=0;i<30;++i) //reset result result[i]='\0'; strrev(bn2); // reversing second binary operand k=0,x=0; for(i=0;i<strlen(bn2);++i) //creating array for addition if(bn2[i]=='1') { for(j=i+1;bn2[j]!='\0';++j) multi[k][x++]='0'; for(l=0;bn1[l]!='\0';++j,++l) multi[k][x++]=bn1[l]; for(;x<30;++j) multi[k][x++]='0'; ++k,x=0; } l=0; for(j=0;j<30;++j) //addition of all columns without carry { x=0; for(i=0;i<k;++i) x+=(multi[i][j]-48); multi[0][l++]=x; } for(i=0;i<30;++i) //loop for including carry. if(multi[0][i]>1) multi[0][i+1]+=((multi[0][i]-(multi[0][i]%2))/2); printf("\n"); for(i=29;i>=0;--i) // excluding first zero's (0's) of array if(multi[0][i]!=0) break; j=0; for(;i>=0;--i) // final calculations and print if(multi[0][i]<48) { multi[0][i]%=2; result[j++]=multi[0][i]+48; // printf("%d",multi[0][i]); } printf("\n"); printf("%s\n",result); break; case 6: //result in decimal b_to_d(result); printf("\n"); break; } n1=x1; d_to_b(n1,binary); for(i=0;binary[i]!='\0';++i) bn1[i]=binary[i]; bn1[i]='\0'; n2=x2; d_to_b(n2,binary); for(i=0;binary[i]!='\0';++i) bn2[i]=binary[i]; bn2[i]='\0'; }while(ch!=7); printf("\n\n i will wait for your mails"); getch(); return 0; } void b_to_d(char result[]) //binary to decimal { short int i; long int dec=0; strrev(result); for(i=0;i<strlen(result);++i) dec+=(result[i]-48)*pow(2,i); printf("result in decimal is %ld\n",dec); strrev(result); } void d_to_b(int dec,char binary[]) // decimal to binary { int i=0; while(dec>0) { binary[i++]=dec%2+48; binary[i]='\0'; dec-=(dec%2); dec/=2; } }
PHP: //--------------------------------------------------------------------------- #include <iostream> #include <cstdlib> #include <assert.h> #pragma hdrstop namespace { using std::cout; using std::cin; using std::endl; using std::system; }; typedef unsigned int uint; //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { uint nNumb = 0; int *pnArray = NULL; cout << "Enter number of digits: "; cin >> nNumb; if (nNumb > 2 && nNumb < 30) pnArray = new int[nNumb]; else { cout << "number of digits too smal or too large" << endl; return 1; } assert(pnArray != NULL); cout << "Enter digits: " << endl; for (uint i = 0;i < nNumb;++i) cin >> pnArray[i]; for (uint i = 0;i < nNumb;i++) { if (i+2 >= nNumb) break; if (pnArray[i] < pnArray[i+1] < pnArray[i+2]) cout << pnArray[i] << pnArray[i+1] << pnArray[i+2] << endl; } delete []pnArray; pnArray = NULL; system("pause"); return 0; } //---------------------------------------------------------------------------
Enter number of digits ввожу 3 Enter digits ввожу 123 435 907 выдает 12435907,а надо было вводить цифры наприсер 123435907 а выдать должно было 123
нет надо выбрать идущие подряд тройки цифр упорядоченных по возрастаню т.е например вводится цыфры 123187456 вывод должен быть 123 456 187 выводиться не должно така как 7<8 Помогите плиз очень надо
2 ankden: Code: #include <stdio.h> int main(int argc, char *argv[]) { int str[10] = {2,3,3,5,6,7,4,5,6}; int i; int t = 0; for(i = 0; i < 10; i++) { if((str[i+1] - str[i] == 1)) { printf("%d", str[i]); t++; } if(((i+1)%3 == 0) && (t == 2)) { printf("%d", str[i]); t = 0; } } return 0; } так?
нет программа выдает 25645 задача я с клавиатуру ввожу цыфры вывыеси долно тройки чисел упорядоченных по возрастанию например 345678098 вывод 345 678 098 выводить не должно тк цыфры идуть не повозрастанию
number of digits - количество цифр, которые ты будешь вводить. формат ввода "ц ц ц ц", где количество ц - number of digits.
Ребята помогите с такой задачей (решать мне ее не надо, просто попытайтесь обяснить что дано и что найти понятнее): "Дан текст. Найти номер первой по порядку группы цифр (см. задачу 812), которые начинаються цифрой 2" Задача 812: "Дан текст, каждый символ которого может быть буквой, цифрой или одним из знаков +, -, *. Группой букв будем называть такую совокупность последовательно расположеных букв, которой непосредственно не предшестует и за которой непосредственно не следует буква. Аналогично определим группу цифр и группу знаков." Собственно из всего етого непонятно такое "...Группой букв будем называть такую совокупность последовательно расположеных букв, которой непосредственно не предшестует и за которой непосредственно не следует буква. Аналогично определим группу цифр и группу знаков..."" Вобщем расстолкуйте плиз что надо пожалуйста.
как в проге на C++ или Daelphi можно сделать так что бы она автоматически находила на компе IP и выводила сразу в ричэдит или в подобное ?
Дается определение последовательности. К примеру "123фвыфыв+-23". Последовательность букв здесь "фвыфвы" так как слева она граничит с 3, а 3 является элементом последовательности цифр, а справа с +, который является элементом последовательности знаков. Я думаю надо определить что такое последовательность цифр и знаков. Только я ХЗ как это относится к коддингу.