C and pointers on C—Chapter 4: Statements (below) Exercises
Chapter IV The following passed VS2012
1,
#include stdafx.h
double sqrt (double temp)
{
double before, after;
before = 1.0;
after = 1.0;
do
{
before = after;
after = (before + temp / before) / 2;
} while (before! = after);
return after;
}
int _tmain (int argc, _TCHAR * argv [])
{
double temp, result;
puts (input N :);
scanf_s (% lf, & temp);
result = sqrt (temp);
printf (sqrt N =% lf
, result);
return 0;
}
2,
#include stdafx.h
int _tmain (int argc, _TCHAR * argv [])
{
int length = 100;
puts (Prime (1 ~ 100):
);
for (int i = 1; i <= length; i ++)
{
int ALU = 0;
for (int j = 1; j <= i; j ++)
{
if (i% j == 0)
{
ALU ++;
}
}
if (ALU == 2)
{
printf (% d, i);
}
}
return 0;
}
3.
#include stdafx.h
int _tmain (int argc, _TCHAR * argv [])
{
int a, b, c;
puts (input three sides length (a, b, c):
);
do
{
scanf_s (% d,% d,% d, & a, & b, & c);
} while ((a + b) <= c || (a + c) <= b || (b + c) <= a);
if ((a == b) && (b == c))
{
puts (equal sides!);
}
else
if ((a == b) || (b == c) || (c == a))
{
puts (Isometric!);
}
else
{
puts (not waiting!);
}
return 0;
}
4, 2B method:
void copy_n (char dst [], char src [], int n)
{
int i, l_src;
l_src = 0;
for (i = 0; dst [i] == ''; i ++)
{
l_src ++;
}
if (l_src <n)
{
for (i = 0; i <l_src; i ++)
{
dst [i] = src [i];
}
for (i = l_src; i <n; i ++)
{
dst [i] = '';
}
}
else
{
for (i = 0; i <n; i ++)
{
dst [i] = src [i];
}
}
}
Correct way:
void copy_n (char dst [], char src [], int n)
{
int dst_index, src_index;
src_index = 0;
for (dst_index = 0; dst_index <n; dst_index ++)
{
dst [dst_index] = src [src_index];
if (src [src_index]! = 0)
{
src_index ++;
}
}
}
5, involves too many string processing, omitted.
6.
void substr (char dst [], char src [], int start, int len)
{
int dst_index, src_index, l_src;
l_src = src_index = 0;
do
{
l_src ++;
} while (src [l_src]! = '');
if (start <0 || len <0 || start> l_src ++)
{
dst [0] = '';
}
else
{
for (dst_index = 0; dst_index <len; dst_index ++)
{
dst [dst_index] = src [src_index + start];
if (src [src_index]! = '')
{
src_index ++;
}
}
}
}
7.
void deblank (char string [])
{
char copy_str [] = ('');
int str_index, copy_str_index, temp = 0;
for (str_index = 0; string [str_index]! = ''; str_index ++)
{
if (string [str_index] == '')
{
if (temp> 0)
{
continue;
}
else
{
copy_str_index ++;
copy_str [copy_str_index] = string [str_index];
temp ++;
}
}
else
{
copy_str_index ++;
copy_str [copy_str_index] = string [str_index];
}
}
copy_str [copy_str_index ++] = '';
for (copy_str_index = 0; copy_str [copy_str_index]! = ''; copy_str_index ++)
{
string [copy_str_index] = copy_str [copy_str_index];
}
string [copy_str_index + 1] = '';
}