60.5k views
2 votes
Write the following function so that it returns the same result, but does

not increment the variable ptr. Your new program must not use anysquare brackets, but must use an integer variable to visit each double in the array. You may eliminate any unneeded variable.

double computeAverage(const double* scores, int nScores)

{
const double* ptr = scores;
double tot = 0;
while (ptr != scores + nScores)

{
tot += *ptr; } ptr++;

}
return tot/nScores;

b. Rewrite the following function so that it does not use any square brackets (not even in the parameter declarations) but does use the integervariable k. Do not use any of the functions such as strlen, strcpy, etc.

// This function searches through str for the character chr.
// If the chr is found, it returns a pointer into str where
// the character was first found, otherwise nullptr (not found).

const char* findTheChar(const char str[], char chr)

{
for(intk=0;str[k]!=0;k++)
if (str[k] == chr)

}

return &str[k];
return nullptr;
}

c. Now rewrite the function shown in part b so that it uses neither square brackets nor any integer variables. Your new function must not use any local variables other than the parameters.

User Daanoo
by
5.3k points

1 Answer

1 vote

Answer:

Step-by-step explanation:

a.

// Rewriting the given function without using any square brackets

double computeAverage(const double* scores, int nScores)

{

const double* ptr = scores;

double tot = 0;

int i;//declaring integer variable

for(i=0;i<nScores;i++)

{

//using an integer variable i to visit each double in the array

tot += *(ptr+i);

}

return tot/nScores;

}

b.

// Rewriting the given function without using any square brackets

const char* findTheChar(const char* str, char chr)

{

for(int k=0;(*(str+k))!='\0';k++)

{

if ((*(str+k)) == chr)

return (str+k);

}

return nullptr;

}

c.

//Now rewriting the function shown in part b so that it uses neither square brackets nor any integer variables

const char* findTheChar(const char* str, char chr)

{

while((*str)!='\0')

{

if ((*str) == chr)

return (str);

str++;

}

return nullptr;

}

User Trey Bean
by
5.4k points