明解C语言 入门篇 第五章答案
练习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语言 入门篇 第五章答案的更多相关文章
- 明解C语言 入门篇 第四章答案
练习4-1 #include <stdio.h> int main(void) { int no; int x; do{ printf("请输入一个整数:"); sca ...
- 明解C语言 入门篇 第三章答案
练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整 ...
- 明解C语言 入门篇 第十三章答案
练习13-1 /* 打开与关闭文件 */ #include <stdio.h> int main(void) { ]; FILE* fp; printf("请输入你要打开的文件& ...
- 明解C语言 入门篇 第十一章答案
练习11-1 /* 用指针实现的字符串的改写 */ #include <stdio.h> int main(void) { "; printf("p = \" ...
- 明解C语言 入门篇 第七章答案
练习7-1 #include <stdio.h> int main() { int n; printf(,, ); //此行显示结果为 4 3 6 因为1的字节就是为4,而-1的字节也是4 ...
- 明解C语言 入门篇 第六章答案
练习6-1 /* 求两个整数中的最小值 */ #include <stdio.h> /*--- 返回三个整数中的最小值 ---*/ int min2(int a, int b) { int ...
- 明解C语言 中级篇 第四章答案
练习4-1 /* 珠玑妙算 */ #include <time.h> #include <ctype.h> #include <stdio.h> #include ...
- 明解C语言 中级篇 第三章答案
练习3-1 /* 猜拳游戏(其四:分割函数/显示成绩)*/ #include <time.h> #include <stdio.h> #include <stdlib.h ...
- 明解C语言 入门篇 第二章答案
练习2-1 #include <stdio.h> int main() { int x; int y; int percent; puts("请输入两个整数"); pr ...
随机推荐
- C 预处理器、头文件、文件读写
预处理器 参考链接:https://www.runoob.com/cprogramming/c-preprocessors.html 预处理器是再变异之前做的一些工作 include 包含一个源文件代 ...
- 阿里Jvm必问面试题及答案
什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被设计 ...
- 【maven】搭建maven私服--基于CentOS7.6+docker
一.docker环境 Docker version 19.03.5, build 633a0ea 二.安装并启动 Maven 私服的工具: Sonatype Nexus 1.搜索 2.下载镜像 doc ...
- 运算符 &(与运算)、|(或运算)、^(异或运算)
按位与运算符(&) 参加运算的两个数据,按二进制位进行“与”运算. 运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 按位或运算符( ...
- Java foreach循环
foreach循环:增强性的for循环应用: 在for语句中,需要使用索引来进行操作具体的数组或集合内容操作:而foreach可以取消索引的操作细节: for ( 类型 变量 : 数组 | 集合 ) ...
- maven 学习---Maven快照
大型软件应用程序通常由多个模块组成,这是多个团队工作于同一应用程序的不同模块的常见场景.例如一个团队工作负责应用程序的前端应用用户接口工程(app-ui.jar:1.0)),同时他们使用数据服务工程( ...
- AI 的架构与核心
AI 的架构 人工智能的架构分为三层:应用层.技术层和基础层. 应用层聚焦在人工智能和各行业各领域的结合.技术层是算法.模型和技术开发.基础层则是计算能力和数据资源. 数据收集:获取什么类型的数据,数 ...
- 简单的基于promise的ajax封装
基于promise的ajax封装 //调用方式: /* ajaxPrmomise({ url:, method:, headers:{} }).then(res=>{}) */ ;(functi ...
- MLflow安装配置初入门
学习这个时,要和Kubeflow作比较, 看看它们俩在解决和规范机器学习流程方面的思路异同. mlflow三大内涵: Tracking, Projects, Models. 一,基础镜像 harbor ...
- LAMP组合
动,静资源: 静态资源:客户端从服务器获得的资源表现形式与原文件相同 动态资源:通常是程序文件,需要在服务器执行之后,将执行的结果返回给客户端. 我们还可以这样理解静态资源:服务器端接入到客户端的请求 ...