练习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 处理中文遇到的编码问题总结 以及 字符str的编码如何判断

    如何处理中午编码的问题 Python的UnicodeDecodeError: 'utf8' codec can't decode byte 0xxx in position 这个错误是因为你代码中的某 ...

  2. wordpress 数据查询-全局注入-模板数据消费输出简图

    我一直比较好奇,类似于wordpress这样的CMS,它可以做的很灵活,同样的软件,为什么就能做出几乎完全不具有相似性的不同站点来呢?除了功能可以有大不同以外,即便是相同的简单blog站他们的外观也可 ...

  3. Python collectioins

    collections是一个python的内建模块,提供了一些除了dict.list.tuble.等常见的数据类型之外的一些集合类 参考链接:https://www.liaoxuefeng.com/w ...

  4. npm 查看全局安装模块

    方法一: npm list -g --depth 0 方法二: 输入npm root -g  得到全局node_modules的地址 在任意文件夹输入此地址,便可查看所安模块 https://blog ...

  5. 解决jmeter进行分布式测试,远程机器来运行脚本,在察看结果树中的响应数据项为空白

    下面为大家提供一个解决办法: 第一步:打开主控机的jmeter--bin目录下的jmeter.properties文件 第二步:查找到mode=Standard 项 第三步:将其前边的注释去掉,然后保 ...

  6. python学习3-python views.py的返回值

    2.首先要说明一点是,对于HttpRequest对象来说,是Django自己创建的,但是HttpResponse就必须要我们自己创建.注意每个view方法都必须返回一个HttpResponse对象,H ...

  7. JOIN中的外连接(external join)

    外连接: ---外连接并不要求连接的两表的每一条记录在对方表中都有一条匹配记录.要保留所有记录(甚至这条记录没有匹配的记录也要保留)的表成为保留表.外连接可以一句连接表保 留左表,右表和全部表的行二进 ...

  8. 关于VS2015 发布.net mvc 网站失败的问题

    问题:VS生成成功,发布失败,在“正在连接到***文件夹”处就不能继续了.. 项目开发告一段落,准备部署到服务器上进行最后测试,但是始终发布失败  生成成功,发布失败,没有任何提示信息 一开始以为是文 ...

  9. Linux 信号量之Posix有名字的信号量

    信号量(semaphore),也和互斥锁一样提供了线程间或者进程间的同步功能. 信号量有三种: Posix有名字的信号量 Posix基于内存的信号量 System V信号量 信号量比互斥锁高级,互斥锁 ...

  10. firewalld规则写法

    需要注意的是Firewalld中的区域与接口 一个网卡仅能绑定一个区域.比如: eth0-->A区域 但一个区域可以绑定多个网卡.比如: B区域-->eth0.eth1.eth2 可以根据 ...