《C语言程序设计第三版》(苏小红)习题十一 课后答案
11.3 月份的英文
从键盘输入一个整型表示的月份,用指针数组编程输出该月份对应的英文,若输入的月份值不在1~12之间,则输出“Ilegal month”。
#include <stdio.h>
#include<stdlib.h>
#define N 10
char *a[12]={"Jan","Feb","Mar","Apr","May","June","July","Aug","Sep","Oct","Nov","Dec"};int main(){int n;printf("请输入月份:\n");scanf("%d",&n);if(n>=1&&n<=12)printf("%s",a[n-1]);elseprintf("Illegal month\n");return 0;
}
11.4 用三种函数编程实现n x n矩阵转置
void Trans1(int a[][N],int n)
void Trans2(int (*a)[N],int n)
#include <stdio.h>
#include<stdlib.h>
#define N 10
void Swap(int &a,int &b){int temp=a;a=b;b=temp;
}
void Trans1(int a[][N],int n){int i,j;for(i=1;i<n;i++){for(j=0;j<i;j++)Swap(a[i][j],a[j][i]);}
}
void Trans2(int (*a)[N],int n){int i,j;for(i=1;i<n;i++){for(j=0;j<i;j++)Swap(a[i][j],a[j][i]);}}int main(){int n,i,j;printf("输入矩阵的阶数:\n");scanf("%d",&n);int a[N][N];printf("输入矩阵:\n");for(i=0;i<n;i++){for(j=0;j<n;j++)scanf("%d",&a[i][j]);} Trans1(a,n);
// Trans2(a,n);for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%d ",a[i][j]);printf("\n");}return 0;}
void Trans3(int *a,int n)
#include <stdio.h>
#include<stdlib.h>
#define N 10
void Swap(int &a,int &b){int temp=a;a=b;b=temp;
}void Trans3(int *a,int n)
{int i,j;for(i=1;i<n;i++){for(j=0;j<i;j++)//printf("%d ",a[i*n+j]);Swap(a[i*n+j],a[j*n+i]);}
}
void Input(int *p,int n){int i,j;for(i=0;i<n;i++){for(j=0;j<n;j++)scanf("%d",&p[i*n+j]);}
}
void Output(int *p,int n){int i,j;for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%d ",p[i*n+j]);printf("\n");}
}
int main(){int n,i,j;printf("输入矩阵的阶数:\n");scanf("%d",&n);int a[N][N];printf("输入矩阵:\n");Input(*a,n);Trans3(*a,n);Output(*a,n);return 0;
}
11.5 m x n 矩阵转置
void Trans1(int a[][N],int at[][N],int m,int n)
void Trans2(int (*a)[N],int (*at)[N],int m,int n)
#include <stdio.h>
#include<stdlib.h>
#define N 10
void Trans1(int a[][N],int at[][N],int m,int n){int i,j;for(i=0;i<m;i++){for(j=0;j<n;j++)at[j][i]=a[i][j]; }
}
void Trans2(int (*a)[N],int (*at)[N],int m,int n){int i,j;for(i=0;i<m;i++){for(j=0;j<n;j++)at[j][i]=a[i][j];}}
int main(){int n,m,i,j;printf("输入矩阵的阶数m和n:\n");scanf("%d %d",&m,&n);int a[N][N],b[N][N];printf("输入矩阵:\n");for(i=0;i<m;i++){for(j=0;j<n;j++)scanf("%d",&a[i][j]);} Trans1(a,b,m,n);//Trans2(a,b,m,n);for(i=0;i<n;i++){for(j=0;j<m;j++)printf("%d ",b[i][j]);printf("\n");}return 0;
}
void Trans3(int *a,int *at,int m,int n)
#include <stdio.h>
#include<stdlib.h>
#define N 10
void Trans3(int *a,int *at,int m,int n)
{int i,j;for(i=0;i<m;i++){for(j=0;j<n;j++)at[j*m+i]=a[i*n+j];//printf("%d ",a[i*n+j]);}
}
void Input(int *p,int m,int n){int i,j;for(i=0;i<m;i++){for(j=0;j<n;j++)scanf("%d",&p[i*n+j]);}
}
void Output(int *p,int m,int n){int i,j;for(i=0;i<n;i++){for(j=0;j<m;j++)printf("%d ",p[i*m+j]);printf("\n");}
}
int main(){int n,m,i,j;printf("输入矩阵的阶数m和n:\n");scanf("%d %d",&m,&n);int a[N][N],b[N][N];printf("输入矩阵:\n");Input(*a,m,n);Trans3(*a,*b,m,n);Output(*b,m,n);return 0;
}
11.6 二维数组最大值
按所给函数原型从键盘输入m x n的二维数组,然后计算数组中最大值和所在的下标值。
void Input(int *p,int m,int n)
int FindMax(int *p,int m,int n,int *prow,int *pcol)
#include <stdio.h>
#include<stdlib.h>
#define N 10
void Input(int *p,int m,int n){int i,j;for(i=0;i<m;i++){for(j=0;j<n;j++)scanf("%d",&p[i*n+j]);}
}
int FindMax(int *p,int m,int n,int *prow,int *pcol){int max=0; int i,j;for(i=0;i<m;i++){for(j=0;j<n;j++){if(p[i*n+j]>max){max=p[i*n+j];*prow=i;*pcol=j;}}}
// printf("%d",max);printf("最大值是%d",p[(*prow)*n+(*pcol)]);
}
int main(){int n,m,i,j;printf("输入矩阵的阶数m和n:\n");scanf("%d %d",&m,&n);int a[N][N];int r,b;printf("输入矩阵:\n");Input(*a,m,n);FindMax(*a,m,n,&r,&b);printf("行下标为%d,列下标为%d",r,b);return 0;
}
11.7 最高分
用动态数组编程输入任意m个班学生(每班n个学生)的某门课成绩,计算最高分。
#include <stdio.h>
#include<stdlib.h>
void Input(int *p,int m,int n){int i,j;for(i=0;i<m;i++){for(j=0;j<n;j++)scanf("%d",&p[i*n+j]);}
}
int FindMax(int *p,int m,int n,int *prow,int *pcol){int max=0; int i,j;for(i=0;i<m;i++){for(j=0;j<n;j++){if(p[i*n+j]>max){max=p[i*n+j];*prow=i;*pcol=j;}}}
// printf("%d",max);printf("最高分是%d",p[(*prow)*n+(*pcol)]);
}
int main(){int n,m,r,b;int *p=NULL; printf("输入有几个班:\n");scanf("%d",&m);printf("输入每班有几个学生:\n");scanf("%d",&n);p=(int *)calloc(m*n,sizeof(int));printf("输入矩阵:\n"); Input(p,m,n);FindMax(p,m,n,&r,&b);printf("是%d班的第%d位同学",r+1,b+1);return 0;
}
《C语言程序设计第三版》(苏小红)习题十一 课后答案相关推荐
- C语言程序设计第三版苏小红习题5.8输入一个字符判断是数字、大写字母、小写字母、空格、还是其他
#include<stdio.h> int main() { char ch; printf("输入一个字符:\n"); ch=getchar(); if(ch> ...
- C语言程序设计第三版苏小红5.7键盘输入字符,字母大写改小写,小写改大写,并输出ASCII码
#include<stdio.h> int main() { char ch; printf("从键盘输入一个字符:\n"); ch=getchar(); if(ch& ...
- C语言程序设计第四版 苏小红 习题答案 3.5
使用宏定义方法时 易错点:注意宏名与字符串之间不要加等号,宏名与字符串之间可以有多个空白符即空格:代码中三分之四应该用(4.0/3)表示,或者其他形式,只要除法两边有浮点数即可(知识点:/两边都是整数 ...
- c语言程序设计第三版宁爱军答案,C语言程序设计(第3版)
C语言程序设计(第3版) 出版时间:2021年04月 定 价:64.00 I S B N :9787115554864 所属分类: 大中专教材 > 高职高专教材   标 签: ...
- c语言程序设计第三版乌云高娃答案,C语言程序设计教学课件作者第3版乌云高娃补充习题及答案C语言程序设计教学课件作者第3版乌云高娃补充习题及答案第3章补充习题及答案课件.doc...
C语言程序设计教学课件作者第3版乌云高娃补充习题及答案C语言程序设计教学课件作者第3版乌云高娃补充习题及答案第3章补充习题及答案课件.doc 第3章补充习题及答案 习题 3.1 选择题 (1)下列运算 ...
- 【个人回顾】C语言程序设计-第三版-何钦铭主编-4
写在开头:本文不以分享为目的,只是记录自己课程学习过程中觉得重要的部分知识点或者知识体系,以及可能存在的没有解决的问题,欢迎大家来进行交流和指正,其中ps部分为个人将其他学科与其构建联系的个人理解,因 ...
- 【个人回顾】C语言程序设计-第三版-何钦铭主编-3
写在开头:本文不以分享为目的,只是记录自己课程学习过程中觉得重要的部分知识点或者知识体系,以及可能存在的没有解决的问题,欢迎大家来进行交流和指正,其中ps部分为个人将其他学科与其构建联系的个人理解,因 ...
- c语言程序设计第三版杜有福,C语言程序设计习题答案 杜有福
C语言程序设计习题答案 杜有福 C语言程序设计习题答案 习题一 C语言程序设计概述 一.名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6) ...
- C语言程序设计第三版崔武子,清华大学出版社-图书详情-《C语言程序设计教程学习辅导》...
C语言是国内外广泛使用的计算机高级语言.大多数高校都开设了"C语言程序设计"课程.作者于1991年编著了<C程序设计>,由清华大学出版社出版,该书出版后,受到了广大读者 ...
最新文章
- jquery-- json字符串没有自动包装为 json对象
- 等价类划分应用的扩展
- Java数据结构和算法:哈夫曼树
- MySQL的用户的创建以及远程登录配置
- python select模块_Python之select模块解析
- php 设置断点,PHP xdebug安装配置(支持断点调试)
- python time strptime_Python中操作时间之strptime()方法的使用
- faster-rcnn系列学习之准备数据
- 谷歌开源EfficientNets:ImageNet准确率创纪录,效率提高10倍
- 【在线研讨】《敏捷开发用户故事分类与组织结构(三期-1)》
- 6. 第三次 人工智能浪潮,有何不同?
- 电子设计从零开始(第2版)pdf
- IOS的Application以及IOS目录的介绍
- linux udp转发脚本,使用Socat转发TCP和UDP流量搭建跳板教程及一键脚本
- 权威高清24色图(2种颜色叫不上名,青专业人士指点)-制作不易,对你有帮助麻烦点个赞
- 架设服务器虚拟主机教程,web服务器虚拟主机(服务器搭建虚拟主机教程)
- 过来看!2021年物联卡资费标准,附:套餐价格+卡板价格
- cdr 表格自动填充文字_CDR小工具YG插件,从此提升工作效率!
- Strusts框架学习(一)
- 阿里云视觉AI训练营_Class3_文字识别项目讲解及使用说明