1. 程式人生 > >明解C語言入門篇練習題第五章

明解C語言入門篇練習題第五章

練習5-1

#include <stdio.h>
int main(void)
{
	int i;
	int v[5];	/* int[5]陣列 */
	for (i = 0; i < 5; i++)		/* 為陣列元素賦值 */
		v[i] = i;
	for (i = 0; i < 5; i++)		/* 顯示元素的值 */
		printf("v[%d] = %d\n", i, v[i]);
	return 0;
}

練習5-2

#include <stdio.h>
int main(void)
{
	int i;
	int v[5];	/* int[5]陣列 */
	for (i = 0; i < 5; i++)		/* 為陣列元素賦值 */
		v[i] = 5 - i;
	for (i = 0; i < 5; i++)		/* 顯示元素的值 */
		printf("v[%d] = %d\n", i, v[i]);
	return 0;
}

練習5-3

#include <stdio.h>
int main(void)
{
	int i;
	int v[5] = { 5, 4, 3, 2, 1 };		/* 初始化 */
	for (i = 0; i < 5; i++)			/* 顯示元素的值 */
		printf("v[%d] = %d\n", i, v[i]);
	return 0;
}

練習5-4

#include <stdio.h>
int main(void)
{
	int i;
	int a[5] = { 17, 23, 36 };	/* 使用{17,23,36,0,0} 進行初始化 */
	int b[5];
	for (i = 0; i < 5; i++)
		b[i] = a[5 - 1 - i];
	puts("  a    b");
	puts("---------");
	for (i = 0; i < 5; i++)
		printf("%4d%4d\n", a[i], b[i]);
	return 0;
}

練習5-5

#include <stdio.h>
#define NUM 7
int main(void)
{
	int i;
	int x[NUM];					/* int[7] 陣列 */
	for (i = 0; i < NUM; i++) {	/* 輸入元素的值 */
		printf("x[%d] : ", i);
		scanf("%d", &x[i]);
	}
	for (i = 0; i < NUM/2; i++) {	/* 對陣列元素進行倒序排列 */
		int temp = x[i];
		x[i] = x[NUM - 1 - i];
		x[NUM - 1 - i] = temp;
	}
	puts("倒序排列了。");
	for (i = 0; i < NUM; i++)		/* 顯示元素的值 */
		printf("x[%d] = %d\n", i, x[i]);
	return 0;
}

練習5-6

#include <stdio.h>
int main(void)
{
	double a;
	int b;
	a = b = 1.5;
	printf("a = %f\n",a);
	printf("b = %d\n",b);
	return 0;
}

練習5-7

#include <stdio.h>
#define NUM 128
int main(void)
{
	int n;
	int i;
	int v[NUM];
	printf("資料個數:");
	scanf("%d",&n);
	for (i = 0; i < n; i++)
	{
		printf("%d號:",i+1);
		scanf("%d",&v[i]);
	}
	printf("{");
	for (i = 0; i < n; i++)
	{
		if (i != n - 1)
			printf("%d,", v[i]);
		else
			printf("%d",v[i]);
	}
	printf("}\n");
	return 0;
}

練習5-8 待做

練習5-9 待做

練習5-10 待做

練習5-11

#include <stdio.h>
#define STU_NUM 6
int main(void)
{
	int i;
	int j;
	int score[STU_NUM][2];
	int yw_sum = 0;
	int yw_avg = 0;
	int sx_sum = 0;
	int sx_avg = 0;
	for (i = 0; i < STU_NUM; i++)
	{
		j = 0;
		printf("學生%d\n",i+1);
		printf("語文分數:");
		scanf("%d",&score[i][j]);	
		yw_sum += score[i][j];
		printf("數學分數:");
		scanf("%d", &score[i][j+1]);
		sx_sum += score[i][j+1];
	}
	yw_avg = yw_sum / STU_NUM;
	sx_avg = sx_sum / STU_NUM;
	printf("語文總分:%d\n",yw_sum);
	printf("數學總分:%d\n",sx_sum);
	printf("語文平均分:%d\n", yw_avg);
	printf("語文平均分:%d\n", sx_avg);
	for (i = 0; i < STU_NUM; i++)
	{
		printf("學生%d總分為%d,平均分為%d。\n",i+1,score[i][0]+score[i][1], (score[i][0] + score[i][1])/2);
	}
	return 0;
}

練習5-12

#include <stdio.h>
int main(void)
{
	int i,j,k;
	int tensu[2][4][3] = { {{ 91, 63, 78 },{ 67, 72, 46 },{ 89, 34, 53 },{ 32, 54, 34 } }, 
						 { { 97, 67, 82 }, { 73, 43, 46 }, { 97, 56, 21 }, { 85, 46, 35 }} };
	int sum[4][3] = { 0 };			/* 總分 */
	for (i = 0; i < 2; i++) /* 求兩次考試的分數之和 */
	{
		for (j = 0; j < 4; j++) /* 4名學生的 */
		{							
			for (k = 0; k < 3; k++)	/* 3門課程的 */				
				sum[j][k] += tensu[i][j][k];	/* 兩次的分數相加 */
		}
	}						
	puts("兩次考試的分數");
	for (i = 0; i < 2; i++) 
	{
		if (i == 0)
			printf("第一次考試的分數\n");
		else
			printf("第二次考試的分數\n");
		for (j = 0; j < 4; j++) 
		{
			for (k = 0; k < 3; k++)
			{
				printf("%4d", tensu[i][j][k]);
			}	
			putchar('\n');
		}
		putchar('\n');
	}
	puts("總分");
	for (j = 0; j < 4; j++) {
		for (k = 0; k < 3; k++)
			printf("%4d", sum[j][k]);
		putchar('\n');
	}
	return 0;
}