All pastes #911413 Raw Edit

Mine

public text v1 · immutable
·published 2008-02-20 18:09 UTC
rendered paste body
/*****************************************************************************
Template made for an ANSI C program.
PROGRAM:    (Name of exercise. Ex. u31.c, for exercise 1 of lab 3...)
VERSION:    1.0
AUTHOR:	    John Doe
DATE:       yymmdd
COMPILER:   mingw 3.2.3
LIBS:       (name of external library containing linked functions...)
COMPANY:    MdH
*****************************************************************************/
/*****************************************************************************
Revision history: (this is where you document the diffs between versions...)

Date   Revision
010905 Noticed that the function foo() had the bug... and so on.

*****************************************************************************/
/*****************************************************************************
 Analys:
 your analysis goes here....

 Design:
 your design goes here...

*****************************************************************************/
/*****************************************************************************
Här följer de grundläggande skärmhanteringsfunktionerna i PDCurses(Win32),
ncurses(Linux) och curses(Unix):

clear() - rensa skärm.
move(int r, int k) - flytta markör till rad r och kolumn k.
   Tillåtna värden på r och k: 0<=r<=24 och 0<=k<=79.
printw() - funkar som printf().
mvprintw(int r, int k, char *, ...) - funkar som printf() -
   men markören flyttas till rad r och kolumn k före utskrift.
   Perfekt för utskrift av ledtexter vid inmatningsformulär !
scanw() - funkar som scanf().
addch(int ch) - funkar som putchar().
getstr() - funkar som gets().
getch() - funkar som "vanliga(=conio)" getch().
refresh() - uppdaterar skärmen. Anropa explicit vid behov !

Anmärkn: Skall du ha en motsvarighet till getchar() också, så får du använda
scanw() t ex.
*****************************************************************************/
/*#define MSS*/
#include <stdio.h>
#include <curses.h>
#include <time.h>
#include "misccur.h"
/*#include <mss.h>*/

int recarrmax1(int *parr, int lastidx);
int recarrmax2(int *parr, int left, int right);

int main(void)
{
  /* Declare YOUR variables here ! */

    int arr[10];
    int i;
    char run='y';

  /* INITIAL_CODE. Don't touch it ! */
  initscr();
  echo();
  clear();
  refresh();
  /* END_INITIAL_CODE */
  /* Insert your code here... */

    srand(time(0));

    while(run=='y')
    {
        for(i=0; i<10; i++)
        {
            arr[i]=rand()%100;
            printw("Nr[%d]:\t%d\n",i+1, arr[i]);
        }

       // printw("\nThe largest number is:\t%d \n",recarrmax1(arr, 9));

        printw("\nThe largest number is:\t%d \n",recarrmax2(arr, 0, 9));


        printw("\nDo you want to continue [y/n]?\n");

        scanw("%c",&run);
        clear();
    }


  /* FINAL_CODE. Don't touch it ! */
  footer("Hit a key to quit the program...");
  clear();
  refresh();
  endwin();
  /* END_FINAL_CODE */

  return 0;
}


int recarrmax1(int *parr, int lastidx)
{  /* returnera största värdet ur arrayen */
    int tmp;

    /* Om det är sista instansen (första), returneras värdet som säkert störst. */
    if(!lastidx)
    {
        return parr[0];
    }

    /* Om det finns fler värden än ett kvar, måste jämförelse ske */
    else
    {
        /* Hämta talet på platsen under i arrayen */
        tmp=recarrmax1(parr, lastidx-1);

        /* Om hämtat tal är störst, returneras det */
        if(tmp>parr[lastidx])
        {
            return tmp;
        }

        /* Annars returneras det aktuella */
        else
        {
            return parr[lastidx];
        }
    }
}


int recarrmax2(int *parr, int left, int right)
{
    int tmp1=0, tmp2=0;

    if(left!=right)
    {
        tmp1=recarrmax2(parr, left, (right/2));
        tmp2=recarrmax2(parr, ((right-(right/2))), right);

        if(tmp1>tmp2)
            return tmp1;
        else
            return tmp2;
    }

    else
        return parr[left];

}