ishkabible, on 17 December 2010 - 09:48 PM, said:
If the first comparision evaluates to false then the AND expression can never be true, so exits early.
Posted 18 December 2010 - 08:51 PM
Posted 18 December 2010 - 09:06 PM
#include <stdio.h>
#include <stdlib.h>
int Max(int _array_[],size_t _size_) {
int _retval_ = _array_[0];
--_size_;
#ifdef __GNUC__
asm (
" movl $1,%%esi\n"
"FOR:\n"
" cmpl %%edx,%%esi\n"
" jnl FOREND\n"
" movl %%esi,%%eax\n"
" imull $4,%%eax\n"
" addl %%ecx,%%eax\n"
" movl (%%eax),%%eax\n"
" cmp %%eax,%%ebx\n"
" jnl IFEND\n"
" movl %%eax,%%ebx\n"
"IFEND:\n"
" incl %%esi\n"
" jmp FOR\n"
"FOREND:\n"
:"=b"(_retval_)
:"b"(_retval_),"c"(_array_),"d"(_size_)
);
#else
__asm {
mov ebx, _retval_
mov ecx, _array_
mov edx, _size_
mov esi,1
FOR:
cmp esi,edx
jnl FOREND
mov eax,esi
imul eax,4
add eax,ecx
mov eax,[eax]
cmp ebx,eax
jnl IFEND
mov ebx,eax
IFEND:
inc esi
jmp FOR
FOREND:
mov _retval_,eax
}
#endif
return _retval_;
}
int main() {
int x[] = {1,7,3,7,9,3,1,56,83,12};
size_t size = sizeof(x)/sizeof(x[0]);
int i = Max(x,size);
printf("%i\n",i);
scanf("%i");
return 0;
}
This post has been edited by ishkabible: 18 December 2010 - 09:08 PM
Posted 18 December 2010 - 09:23 PM
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int array[] = {3,1,4,15,9,2,6,5,35,8,97,93,23,84,62,64,33,83,27,950,28,841,971,69,39,937,510};
int size = sizeof(array)/sizeof(int);
cout << "The array is as follows: " ;
for (int counter=0;counter<size;counter++)
{
cout << array[counter] << " ";
}
cout << endl;
cout << "The largest element is : " << *max_element(array,array+size) << endl;
sort(array,array+size);
cout << "The sorted array is : " ;
for (int counter=0;counter<size;counter++)
{
cout << array[counter] << " ";
}
cin.get();
return 0;
}
This post has been edited by shad0wk1: 18 December 2010 - 09:24 PM
Posted 18 December 2010 - 10:19 PM
AdamSpeight2008, on 18 December 2010 - 10:37 PM, said:
Posted 18 December 2010 - 11:08 PM
Function Max(Of T As IComparable)(ByVal c As T()) As T
Return Enumerable.Aggregate(c, c(0), Function(a, e) (Function(_x As T, _y As T) {_y, _x, _x}(Math.Sign(_x.CompareTo(_y)) + 1))(a, e))
End Function
This post has been edited by AdamSpeight2008: 18 December 2010 - 11:09 PM
Posted 19 December 2010 - 06:13 AM
int maxPair(int x, int y) {
(y>x) && (x=y);
return x;
}
int maxPair(int x, int y) { return ((x>y) * x) + ((x<=y) * y); }
int findMax(int *a, int pos) {
unsigned int g_again = (unsigned int)&&top, g_last = (unsigned int)&&last;
int result = a[pos--] - 1;
top:
int nextValue = a[pos--];
int nextValueGt = (nextValue>result);
result = (!nextValueGt)*result+(nextValueGt)*nextValue;
int lastValue = (pos<0);
unsigned int g_next = ((!lastValue)*g_again+(lastValue)*g_last);
goto *g_next;
last:
return result;
}
Posted 19 December 2010 - 06:25 AM
This post has been edited by Munawwar: 19 December 2010 - 06:40 AM
Posted 19 December 2010 - 08:07 AM
Posted 19 December 2010 - 11:10 AM
L1:
__asm {
jMp l1
}
l1:
void(*mylable)();
asm {
mov eax,somelable
mov mylable,eax
}
somelable:
This post has been edited by ishkabible: 19 December 2010 - 11:17 AM
Posted 19 December 2010 - 02:55 PM
#include <iostream>
#include <limits>
using namespace std;
int findMax(int *ar, int size, int pos=0, int temp=0) {
return (pos<size && (temp=( (int[]){(temp=findMax(ar,size,pos+1)),ar[pos]}[(ar[pos]>temp)] ))) || (temp=numeric_limits<int>::min()), temp;
}
int main(){
int array[] = { 3, 1, 4, 15, 9, 2, 6, 5, 35, 8, 97, 93, 23, 84, 62, 64, 33, 83, 27, 950, 0, 841, 971, 69, 39, 937, 510 };
cout << findMax(array, sizeof(array)/sizeof(array[0])) << endl;
return 0;
}
This post has been edited by Munawwar: 19 December 2010 - 02:56 PM
Posted 19 December 2010 - 03:41 PM
Posted 20 December 2010 - 05:23 AM
NickDMax, on 15 December 2010 - 09:14 AM, said:
Quote
int main() {
int array[] = { 3, 1, 4, 15, 9, 2, 6, 5, 35, 8, 97, 93, 23, 84, 62, 64, 33, 83, 27, 950, 28, 841, 971, 69, 39, 937, 510 };
cout << "Largest element is: " << max(array) << endl;
return 0;
}
#include<iostream>
using namespace std;
#define SIZE 10
int a[SIZE]={2, 10, 87, 1000, 23, 31, 45, 85, 988, 344};
int cnt=1;
static int iMax=a[0];
int getMax()
{
iMax = iMax*(iMax>a[cnt]) + a[cnt]*(a[cnt]>iMax);
return cnt++<SIZE && getMax();
}
int main()
{
getMax();
cout << "Maximum = " << iMax << endl;
return 0;
}
This post has been edited by NickDMax: 20 December 2010 - 07:46 AM
Reason for edit:: added code tags and spoiler tags
Posted 20 December 2010 - 07:34 AM
int findMax(int *a, int size) {
int result;
asm (
"movl (%%eax),%%ebx\n"
"TOP:\n"
" dec %%ecx\n"
" jz DONE\n"
" addl $4, %%eax\n"
" cmp (%%eax),%%ebx\n"
" jnl TOP\n"
" movl (%%eax),%%ebx\n"
" jmp TOP\n"
"DONE:\n"
:"=b"(result)
:"a"(a),"c"(size)
);
return result;
}
Posted 23 September 2012 - 12:43 PM
#include<iostream>
int
max(int b, int c)
{
int x( b*(b>c) ),y( c*(c>B)/> ),z( c*(c==B)/> );
return x + y + z;
}
int
min(int b, int c)
{
return b*(b<c) + c*(c<B)/> + c*(b==c);
}
int
max( int const *b, int cm, size_t start, size_t len )
{
int m = max(cm,b[start]);
bool quittin_time = (start < len - 1 && (m=max(b,m,start+1,len)),true );
return m;
}
int
max( int const *b, size_t start, size_t len )
{
int m(b[start]),i(start+1);
bool quittin_time = (start < len - 1 && (m=max(b,m,start+1,len)),true );
return m;
}
int
max( int const *b )
{
return max( b, 0, 27 );
}
bool
sort( int *a, int *b )
{
bool ck = (*a)==min(*a,*B)/>;
int aa = *a;
int bb = *b;
*a = min(aa,bb);
*b = max(aa,bb);
return ck;
}
bool
sort( int *b, bool sorted, size_t start, size_t len )
{
sorted = sort( b+start, b+start+1 ) && sorted;
bool g = (start < len-1) && (sorted=sort(b,sorted,start+1,len) && sorted,true);
return sorted;
}
bool
sort( int *b )
{
return sort(b,true,0,27) || sort(B)/>;
}
void
print_ns( int *b, size_t i, size_t len )
{
bool ck = (i<len) && ((std::cout << *(b+i) << "\n"), print_ns(b,i+1,len),true);
}
int
main()
{
int array[] = { 3, 1, 4, 15, 9,
2, 6, 5, 35, 8,
97, 93, 23, 84, 62,
64, 33, 83, 27, 950,
28, 841, 971, 69, 39,
937, 510 };
std::cout << max(array);
sort(array);
print_ns(array,0,27);
return 0;
}
Posted 23 September 2012 - 01:03 PM
|
|
Query failed: connection to localhost:3312 failed (errno=111, msg=Connection refused).
|
