C primer plus第六版第六章習題答案

習題答案



//6.1
#include<stdio.h>
int main(void)
{
	char name[26];
	int i;
	
	for(i = 0;i < 26; i++)
	{
		name[i] = 'a' + i;
		printf("%c ",name[i]);
	}
	
	return 0;
}
//6.2
#include<stdio.h>
int main(void)
{
	int i,j;
	
	for (i = 0;i < 5;i++)
	{
		for(j = 0 ;j <= i;j++)
		{
			printf("$");
		}
		printf("\n");
	}
	
	return 0;
}
//6.3
#include<stdio.h>
int main(void)
{
	char name[6];
	int i,j;
	
	for (i = 0;i < 6;i++)
	{
		for(j = 0;j <= i;j++)
		{
			name[j] = 'F' - j;
			printf("%c",name[j]);
		}
		printf("\n");
	}
	
	return 0;
}
//6.4
#include<stdio.h>
#define SIZE 6
int main(void)
{
	char ch = 'A';
	int i,j;

	for (i = 0;i < SIZE;i++)
	{
		for (j = 0;j <= i;j++)
		{
			printf("%c",ch++);
		}
	printf("\n");
	}

	return 0;
}
//6.5
#include<stdio.h>
int main(void)
{
	int i,j,k;
	char letter;
	printf("輸入大寫字母.\n");
	scanf("%c",&letter);
	k = letter - 'A' + 1;
	
	for (i = 0; i < k;i++)       
	{
		for (j = 0; j <=k-i; j++) 
			printf(" ");
		for (j = 0;j <= i;j++)     //升序
			printf("%c",'A' + j);
		for (j = i - 1;j >= 0;j--) //降序 
			printf("%c",'A' + j);
		printf("\n");
	}
	
	return 0;
} 
//6.6
#include<stdio.h>
int main(void)
{
	int i,j;
	int start,finish;
	int square_num,cube_num;

	printf("請輸入表格子的上下限: \n");
	while(scanf("%d %d",&start,&finish) !=EOF )
	{
		for(j =start;j <=finish;j++)
		{
			square_num = j*j;
			cube_num = j*square_num;
			printf("number:%5d  square_num:%10d  cube_num:%15d\n",j,square_num,cube_num);
	 	}

		printf("再次輸入表格的上下限: \n");
	}

	return 0;
}
//6.7
#include<stdio.h>
#include<string.h>
int main(void)
{
	char letters[20];
	int i;

	printf("Please enter a word.\n");
	scanf("%s",letters);

		for (i = strlen(letters)-1;i >=0 ;i--)
			printf("%c",letters[i]);
		printf("\n");


	return 0;
}

#include<stdio.h>
int main(void)
{
	double n1,n2;

	printf("Please enter two float number.\n");
	while(scanf("%lf %lf",&n1,&n2)!=EOF)
	{
		printf("The difference between these two numbers is divided by the two-digit product is %5.3lf\n",
		(n1-n2)/(n1*n2));
		printf("Enter again.\n");
	}

	return 0;
}
//6.9
#include<stdio.h>
void result(double n1,double n2);
int main(void)
{
	double n1,n2;
	
	printf("Please enter two float number.\n");
	while(scanf("%lf %lf",&n1,&n2)!=EOF)
	{
		result(n1,n2);
	}
	
	return 0;
}
void result(double n1,double n2)
{
	printf("The difference between these two numbers is divided by the two-digit product is %5.3lf\n",
	(n1-n2)/(n1*n2));  
	printf("Enter again.\n");
}
//6.10
#include<stdio.h>
int main(void)
{
	int square_lower,square_upper;
	int lower,upper;
	int i;

	printf("Enter lower and upper integer limits: \n");
	while(scanf("%d %d",&lower,&upper)&&lower < upper)
	{
		int sum = 0;
		for (i = lower;i <= upper;i++)
		{
			sum += i*i;
			square_lower = lower*lower;
			square_upper = upper*upper;
		}
		printf("The sums of the square from %d to %d is%d\n",square_lower,square_upper,sum);
		printf("Enter next set of limits: ");
	}
	printf("Done\n");

	return 0;
}
/*      第十一題     */
#include<stdio.h>
#define SIZE 8
int main(void)
{
	int number[SIZE];
	int result;
	int i;
	
	printf("Please enter eight numbers.\n");
	for (i = 0;i < SIZE;i++)
		scanf("%d",&number[i]);
		
	for (i = SIZE - 1;i >= 0;i--)
		printf("%d",number[i]);
	printf("\n");
	
	return 0;
}
//6.12
#include<stdio.h>
#include<math.h>
int main(void)
{
	int limit;
	int i;


	printf("Please enter the limit.\n");
	while(scanf("%d",&limit) && limit>0 )
	{float sum1=0;
	float sum2=0;
		for (i = 1;i <=limit;i++)
		{
			sum1 +=  1.0/ i;
			sum2 += (1.0/i)*pow(-1,i-1);//-1的平方控制正負
		}
		printf("The firse result is %f\n",sum1);
		printf("The second result is %f\n",sum2);
	}

	return 0;
}
//6.13
#include<stdio.h>
#include<math.h>
int main(void)
{
	int number[8];
	int i;
	
	for (i = 0;i < 8;i++)
	{
		number[i] = pow(2,i+1);
	}
	i = 0;
	do
	{
		printf("%d ",number[i]);
		i++;
	}while(i < 8);
	
	return 0;
}
//6.14
#include<stdio.h>
#define SIZE 8
int main(void)
{
	double a[SIZE];
	double b[SIZE];
	int i;
	double sum;

	for (i = 0;i < SIZE;i++)
	{
		scanf("%lf",&a[i]);
		sum += a[i];
		b[i] = sum;
	}
	for (i = 0;i < 8;i++)
		printf("%.2lf ",a[i]);
	printf("\n");

	for (i = 0;i < 8;i++)
		printf("%.2lf ",b[i]);

	return 0;
}
//6.15
#include<stdio.h>
int main(void)
{
	int i = -1;
	char letters[255];
	
	do
	{
		i++;
		scanf("%c",&letters[i]);
	}while(letters[i] != '\n');
	for( ;i >= 0;i--)
		printf("%c",letters[i]);
		
	return 0;
}

//6.16
#include<stdio.h>
int main(void)
{
	double sum1 = 100.0; //Daphne's money
	double sum2 = 100.0; //Deirdre's money
	double money = 100.0;
	int years = 0;
	
	do
	{
		years++;
		sum1 += money*0.1;
		sum2 += sum2*0.05;
	}while(sum1 >= sum2);
	printf("years: %d  Daphne's money: %lf  Deirdre's money: %lf",years,sum1,sum2);
	
	return 0;
}
//6.17
#include<stdio.h>
int main()
{
	double bonus = 100.00;
	int years = 0;
	
	do
	{
		years++;
		bonus += bonus*0.08;
		bonus -= 10.0;
	}while(bonus > 0);
	printf("years: %d",years);
	
	return 0;	
}
//6.18
#include<stdio.h>
int main(void)
{
	int friends = 5;
	int weeks = 0;
	do
	{
		weeks++;
		friends = (friends - weeks) * 2;
	}while(friends < 150);
	printf("Weeks: %d",weeks);
	
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章