首页 > 代码库 > C和指针 (pointers on C)——第四章:语句(下)习题解答

C和指针 (pointers on C)——第四章:语句(下)习题解答

题目请见 http://download.csdn.net/download/wangpegasus/5701765

第四章以下通过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 \n",result);
	return 0;
}
2、

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int length = 100;
	puts("Prime(1~100):\n");
	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\t", i);
		}
	}
	return 0;
}
3、

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	int a,b,c;
	puts("输入三边长度(a,b,c):\n");
	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("等边!");
	}
	else 
		if ((a==b)||(b==c)||(c==a))
		{
			puts("等腰!");
		}
		else
		{
			puts("不等边!");
		}
	return 0;
}

4、2B方法:

void copy_n( char dst[], char src[], int n )
{
	int i,l_src;
	l_src = http://www.mamicode.com/0;>
正确做法:

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、涉及到太多字符串处理,略。
6、

void substr(char dst[], char src[], int start, int len)
{
	int dst_index, src_index, l_src;
	l_src =	http://www.mamicode.com/src_index = 0;>
7、

void deblank(char string[])
{
	char copy_str[] = {'\0'};

	int str_index, copy_str_index, temp = 0;
	for ( str_index = 0; string[str_index] != '\0'; 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++] = '\0';
	for ( copy_str_index = 0; copy_str[copy_str_index] != '\0'; copy_str_index++)
	{
		string[copy_str_index]= copy_str[copy_str_index];
	}
	string[copy_str_index + 1] = '\0';
}