明解C語言入門篇練習題第五章
阿新 • • 發佈:2019-01-22
練習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;
}