练习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. C#: 解决Fody is only supported on MSBuild 16 and above

    背景信息: 使用Costura.Fody插件将自己写的程序打包成一个可以独立运行的EXE文件我们在开发程序的时候会引用很多DLL文件,在程序完成编写后,如果不把这些引用的DLL打包,在拷贝给到别人使用 ...

  2. 2019年JVM最新面试题,必须收藏它

    1.JVN内存结构 方法区和对是所有线程共享的内存区域:而java栈.本地方法栈和程序员计数器是运行是线程私有的内存区域. Java堆(Heap),是Java虚拟机所管理的内存中最大的一块.Java堆 ...

  3. Hystrix核心熔断器

    在深入研究熔断器之前,我们需要先看一下Hystrix的几个重要的默认配置,这几个配置在HystrixCommandProperties 中 //时间窗(ms) static final Integer ...

  4. java--Proreties

    Prorerties /* * Properties,内存与文件信息交互 * 表示了一个持久的属性集 * * 构造方法: * Properties() * * */ //简单使用 创建,添加,遍历, ...

  5. CSS3动画实践——简易牛顿摆

    最近在练习CSS3的关键帧动画(keyframes),于是做了一个简单的牛顿摆(听名字可能陌生,但你一定见过它): 先上代码(老版本IE可能存在兼容性问题): <!DOCTYPE html> ...

  6. Html头部meta标签

      meta元素有4个属性:name.http-equiv.content.charset.meta标签通过name属性来表述页面文档的元信息,通过http-equiv属性设置http请求指令,通过c ...

  7. MES系统实施4大关键点,您都知道吗?

    MES是制造企业生产管理信息化的核心,能否成功实施和应用MES是企业实现提高生产效率,降低成本等信息化建设目标的关键所在. 但是,对于信息化基础相对薄弱的中国制造企业来说,MES的复杂性使得企业在进行 ...

  8. 华为手机 android8.0APP更新时出现安装包解析异常的提示及安装闪退(无反应)问题

    在做android app升级更新时遇到几个问题,我用的测试机是华为V10 系统为8.0 一.安装闪退(无反应) 解决办法: 只要在Mainfest.xml 中加入权限编码即可解决 <uses- ...

  9. Unix/Linux/Mac os下 文件互传

    说起文件互传,就不得不提命令scp. 他是Secure copy的缩写,使用ssh连接和加密方式, 如果两台机器之间配置了ssh免密登录, 那在使用scp的时候可以不用输入密码.  scp 和 cp ...

  10. SUSE12-SP2安装教程(虚拟机)

    创建虚拟机,安装系统,安装系统后的系统设置 创建虚拟机 将SUSE12-SP2镜像(大于3G)上传到虚拟机主机存储. 创建虚拟机创建虚拟机,CPU>=8核,内存>=16G(注:我这里仅演示 ...