练习5-1

/*
依次把1、2、3、4、5 赋值给数组的每个元素并显示(使用for语句)
*/ #include <stdio.h> int main(void)
{
int i;
int v[]; /* int[5]数组 */ for (i = ; i <; i++) /* 为数组元素赋值 */
v[i] = i ; for (i = ; i<; i++) /* 显示元素的值 */
printf("v[%d] = %d\n", i, v[i]); return ;
}

练习5-2

/*
依次把1、2、3、4、5 赋值给数组的每个元素并显示(使用for语句)
*/ #include <stdio.h> int main(void)
{
int i;
int v[]; /* int[5]数组 */ for (i = ; i <; i++) /* 为数组元素赋值 */
v[i] = i + ; for (i = ; i >=; i--) /* 显示元素的值 */
printf("v[%d] = %d\n", i, v[i]); return ;
}

练习5-3

/*
从头开始依次用1、2、3、4、5 对数组各元素进行初始化并显示
*/ #include <stdio.h> int main(void)
{
int i;
int v[] = { ,,,, }; /* 初始化 */ for (i = ; i < ; i++) /* 显示元素的值 */
printf("v[%d] = %d\n", i, v[i]); return ;
}

练习5-4

/*
把数组中的全部元素复制到另一个数组中
*/ #include <stdio.h> int main(void)
{
int i;
int a[] = { , , }; /* 使用{17,23,36,0,0} 进行初始化 */
int b[]; for (i = ; i < ; i++) {
b[ - i] = a[i];
} puts(" a b");
puts("---------");
for (i = ; i < ; i++)
printf("%4d%4d\n", a[i], b[i]); return ;
}

练习5-5

/*
对数组的全部元素进行倒序排列
*/ #include <stdio.h>
#define number 7 int main(void)
{
int i;
int x[number]; /* int[number] 数组 */ for (i = ; i < number; i++) { /* 输入元素的值 */
printf("x[%d] : ", i);
scanf("%d", &x[i]);
} for (i = ; i < ; i++) { /* 对数组元素进行倒序排列 */
int temp = x[i];
x[i] = x[ - i];
x[ - i] = temp;
} puts("倒序排列了。");
for (i = ; i < number; i++) /* 显示元素的值 */
printf("x[%d] = %d\n", i, x[i]); return ;
}

练习5-6

都会变成  1

练习5-7

#include <stdio.h>

#define number    80    

int main(void)
{
int v[number];
int num;
int i;
printf("数据个数:");
scanf("%d", &num);
for (i = ; i < num; i++) {
printf("%d号:",i+);
scanf("%d", &v[i]);
}
printf("{");
for (i = ; i < num-; i++) { printf("%d, ", v[i]);
}
printf("%d", v[num-]);
printf("}"); return ;
}

练习5-8

/*
输入学生的分数并显示出分布情况
*/ #include <stdio.h> #define NUMBER 80 /* 人数上限 */ int main(void)
{
int i, j;
int num; /* 实际的人数 */
int tensu[NUMBER]; /* 学生的分数 */
int bunpu[] = { }; /* 分布图 */ printf("请输入学生人数:");
scanf("%d", &num); printf("请输入%d 人的分数。\n", num); for (i = ; i < num; i++) {
printf("%2d号:", i + );
scanf("%d", &tensu[i]);
bunpu[tensu[i] / ]++;
} puts("\n---分布图---"); for (i = ; i <= ; i++) { /* 不到100分 */
printf("%3d - %3d:", i * , i * + );
for (j = ; j < bunpu[i]; j++)
putchar('*');
putchar('\n');
}
printf(" 100:");
for (j = ; j < bunpu[]; j++) /* 100分 */
putchar('*');
putchar('\n'); return ;
}

练习5-9

//c语言 最好用c++打开 我也是刚刚学,想了很久写出来的,不知道有没有更好的办法
#include <stdio.h>
#define NUMBER 90 //定义人数上限
int main(void)
{
int i, j, a[NUMBER], dis[] = { }, b;
//ij计数 a成绩数组 dis成绩分布数组 b实际人数 printf("请输入学生人数:");
scanf("%d", &b); for (i = ; i < b; i++)
{
printf("%2d号:", i + );
do
{
scanf("%d", &a[i]);
if (a[i] < || a[i]>)
printf("请输入0-100之间的数:");
} while (a[i] < || a[i]>); dis[a[i] / ]++;
}
//-----------------------------------输出星星的行数=人数最多的那一列的人数 将最多人数的分数段的人数赋给max(准备工作)
int max = dis[];
for (i = ; i < ; i++)
{
if (dis[i] > max)
max = dis[i];
}
//-----------------------------------输出星星
for (; max > ; max--)//有max行 外循环max次
{
for (j = ; j < ; j++)//有11列 循环11次
// 本次循环完毕表示一行输出完毕 需要换行进行下一行输出
//----------------------------------- 当某分数段人数大于等于max时,内循环输出星星直到内循环结束。每次外循环max--
// 比如 最多人数的分数段(max)=3 则人数为3的分数段(通过内循环)各自输出星星 内循环结束 回车
// 第二次外循环(max=2)则人数为3和2的分数段(通过内循环)输出星星 内循环结束 回车
// 第三次外循环(max=1)则人数为3和2和1的分数段(通过内循环)输出星星 回车 外循环结束
{
if (dis[j] >= max)
printf(" *");
else
printf(" ");
}
putchar('\n');
}
putchar('\n');
//-----------------------------------输出底部线条
for (i = ; i < ; i++)
{
printf("-");
}
putchar('\n');
//-----------------------------------输出底部数字
for (i = ; i < ; i++)
{
printf("%4d", i * );
}
putchar('\n');
return ;
}

练习5-10

#include<stdio.h>
int main()
{
int a[][];
int b[][];
int i, j, k, x, y, c[][];
printf("输入4*3 个数 以空格隔开:\n");
for (i = ; i < ; i++)
for (k = ; k < ; k++)
scanf("%d", &a[i][k]);
printf("输入3*4 个数 以空格隔开:\n");
for (i = ; i < ; i++)
for (k = ; k < ; k++)
scanf("%d", &b[i][k]);
for (i = ; i < ; i++) { //计算矩阵c的值
for (j = ; j < ; j++) {
c[i][j] = ;
for (k = ; k < ; k++) {
c[i][j] += a[i][k] * b[k][j];
} }
} for (x = ; x < ; x++)
{
for (y = ; y < ; y++)
printf("%d\t", c[x][y]);
printf("\n");
}
return ;
}

练习5-11

/*
求6名学生在两次考试中1门课程的总分并显示
*/ #include <stdio.h> int main(void)
{
int i, j;
double x,y;
x=y= ;
int tensu1[][];
int tensu2[][];
int sum[][]; /* 总分 */ puts("请依次输入语文和数学的成绩,用空格分隔");
puts("输入分数:"); puts("语文:");
for (i = ; i < ; i++) {
for (j = ; j < ; j++) {
scanf("%d", &tensu1[i][j]);
} } for (i = ; i < ; i++) {
for (j = ; j < ; j++) {
printf("%6d\t", tensu1[i][j]);
x += tensu1[i][j];
}
}
putchar('\n'); printf("语文的总分是%.2f,平均分是:%.2f",x,x/); putchar('\n');
puts("数学:");
for (i = ; i < ; i++) {
for (j = ; j < ; j++) {
scanf("%d", &tensu2[i][j]);
}
} for (i = ; i < ; i++) {
for (j = ; j < ; j++) {
printf("%6d\t", tensu2[i][j]);
y += tensu2[i][j];
}
}
putchar('\n');
printf("数学的总分是%.2f平均分是:%.2f",y, y / );
/* 求两次考试的分数之和 */
for (i = ; i < ; i++) {
for (j = ; j < ; j++)
sum[i][j] = tensu1[i][j] + tensu2[i][j];
}
putchar('\n'); /* 显示总分 */
puts("总分");
for (i = ; i < ; i++) {
for (j = ; j < ; j++)
printf("%6d\t", sum[i][j]); }
putchar('\n');
puts("平均分");
for (i = ; i < ; i++) {
for (j = ; j < ; j++)
printf("%.2f\t", (double)sum[i][j]/); }
return ;
}

练习5-12

#include <stdio.h>

int main(void)
{
int x, y, z;
int tensu[][][] = { { {, , }, {, , },{, , }, {, , } } ,{ {, , }, { , , }, { , , }, { , , } } }; for (x = ; x < ; x++) {
for (y = ; y < ; y++) {
for (z = ; z < ; z++) {
printf("%4d", tensu[x][y][z]); }
putchar('\n');
}
}
return ; }

明解C语言 入门篇 第五章答案的更多相关文章

  1. 明解C语言 入门篇 第四章答案

    练习4-1 #include <stdio.h> int main(void) { int no; int x; do{ printf("请输入一个整数:"); sca ...

  2. 明解C语言 入门篇 第三章答案

    练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整 ...

  3. 明解C语言 入门篇 第十三章答案

    练习13-1 /* 打开与关闭文件 */ #include <stdio.h> int main(void) { ]; FILE* fp; printf("请输入你要打开的文件& ...

  4. 明解C语言 入门篇 第十一章答案

    练习11-1 /* 用指针实现的字符串的改写 */ #include <stdio.h> int main(void) { "; printf("p = \" ...

  5. 明解C语言 入门篇 第七章答案

    练习7-1 #include <stdio.h> int main() { int n; printf(,, ); //此行显示结果为 4 3 6 因为1的字节就是为4,而-1的字节也是4 ...

  6. 明解C语言 入门篇 第六章答案

    练习6-1 /* 求两个整数中的最小值 */ #include <stdio.h> /*--- 返回三个整数中的最小值 ---*/ int min2(int a, int b) { int ...

  7. 明解C语言 中级篇 第四章答案

    练习4-1 /* 珠玑妙算 */ #include <time.h> #include <ctype.h> #include <stdio.h> #include ...

  8. 明解C语言 中级篇 第三章答案

    练习3-1 /* 猜拳游戏(其四:分割函数/显示成绩)*/ #include <time.h> #include <stdio.h> #include <stdlib.h ...

  9. 明解C语言 入门篇 第二章答案

    练习2-1 #include <stdio.h> int main() { int x; int y; int percent; puts("请输入两个整数"); pr ...

随机推荐

  1. python数据分析&挖掘,机器学习环境配置

    目录 一.什么是数据分析 1.这里引用网上的定义: 2.数据分析发展与组成 3.特点 二.python数据分析环境及各类常用分析包配置 1.处理的数据类型 2.为什么选择python 三.python ...

  2. 有两个CIDR地址块208.128/11和208.130.28/22。是否有那一个地址块包含了另一个地址?如果有,请指出,并说明理由。

    有两个CIDR地址块208.128/11和208.130.28/22.是否有那一个地址块包含了另一个地址?如果有,请指出,并说明理由. 208.128/11的前缀为:11010000 100: 208 ...

  3. PHP MySQL数据分页

    SQL SELECT语句查询总是可能导致数千条记录.但是在一个页面上显示所有结果并不是一个好主意.因此,我们可以根据要求将此结果划分为多个页面.分页意味着在多个页面中显示您的查询结果,而不是仅将它们全 ...

  4. UML与设计模式

    这个在大中华区不知道是否重视,反正我是接触的人中谈的少,除了想起大学有个博士级别的老师,给我们上课天天老拿着一本外文翻译的UML书外,可真要重视起来的. 加深一个单词,模式pattern,patter ...

  5. SAP MM Purchase Order History Category

    SAP MM Purchase Order History Category 1) ,These are different categories of PO history which is con ...

  6. ubuntu下编译android jni到so库的mk文件配置

    项目根目录下的Android.mk文件 LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional L ...

  7. 白话SCRUM 之三:sprint backlog

    Sprint Backlog就是任务列表,如果映射到传统的项目管理理论中就是WBS(work breakdown structure),而且是典型的采用面向交付物的任务分解方法得到的WBS. 比如有一 ...

  8. eclipse springboot工程打war包方法及在Tomcat中运行的方法

    一, eclipse springboot打war包 1. 配置pom.xml文件 <packaging>war</packaging> <!-- 配置servlet,打 ...

  9. 02-MySQL 介绍和安装

    MySQL 介绍和安装 1.什么是数据? 数据: 文字.图片.视频...人类认知的数据表现方式 计算机: 二进制.16进制的机器语言 基于数据的重要性和复杂性的不同,我们可能有不同的管理方式. 哪些数 ...

  10. Python 简易web日志查看工具&可改装为命令行工具

    Python 简易web日志查看工具&可改装为命令行工具 效果图 原理 利用python的paramiko库模拟ssh登录操作,并执行tail命令 所需库 flask.paramiko.gev ...