标签:输入 The ret 第一个 数组 程序 return ber sum
/*
该程序练习二维数组
用户输入3组数,每组5个, (3行5列数组)
计算每组平均值
计算每行平均值
计算所有数的平均值
找出所有数的最大值
可以使用如下数组测试
a[3][5] = {{11,12,13,14,15},
{21,22,23,24,15},
{31,32,33,34,35}};
想象,a有三个一维数组组成(竖着排的11,21,31),每个数组有5个数组组成。
*a 是一个地址,即 &a[0] 。a是指针的指针,指向第一行(也指向行中的第一个),a+1向下 移动一行
*(a+1) 代表第二行,即a [1] ,即 21,22,23,24,15
*((*a+1)+2) ==第二列第3个即23
感觉二维数组的指针太难了。。。
*/
#include #define ROW 3
#define COL 5
//声明函数
void prs(void);
void av_row(double ar[][COL], int row); //计算每行平均值
void av_col(double ar[][COL], int row); //计算每列平均值
void av_all(double ar[][COL], int row);
void find_big(double ar[][COL], int row);
main() {
double a[ROW][COL];
int r, c;
////-------------------输入部分: ----------------------------------
// 用户输入3组数,每组5个
printf("please input 15 numbers:\n");
for (r = 0; r )
for (c = 0; c )
scanf_s("%lf", &a[r][c]);
//// 测试数组:
//double a[ROW][COL] = {
// {11,12,13,14,15},
// {21,22,23,24,15},
// {31,32,33,34,35}
//};
//// 测试输入
// { 11.1 1.2 1.23 -1.4 14.5 92.1 111.1 22.3 233.4 0.01 13.1 33.2 3.3 33.4 35.9 }
//显示数组
printf("You array is : \n\n");
for (r = 0; r ) {
for (c = 0; c )
printf("%.2lf ", a[r][c]);
printf("\n");
}
prs();
//调用计算
av_row(a, ROW); //计算每行平均值
av_col(a, ROW); //计算每列平均值
av_all(a, ROW);//计算总平均值
find_big(a, ROW); //找最大数
}
// ---------------------- 下面计算 ---------------------- ////
//计算每组平均值
//void avcol(double (*p)[COL],int row)
void av_row(double ar[][COL], int row)
{
int r, c;
double av;
double sum = 0.0;
for (r = 0; r ) {
sum = 0.0; //不能少,每轮循环重置;
for (c = 0; c )
{
sum += ar[r][c];
av = sum / COL;
}
printf("Row%d sum=%.0f, av= %.2f\n", r + 1, sum, av);
}
prs();
}
//计算每列平均值
void av_col(double ar[][COL], int row) {
double sum = 0.0;
double av;
int c, r;
for (c = 0; c ) {
double sum = 0.0;
for (r = 0; r )
{
sum += ar[r][c];
av = sum / row;
}
printf("col%d sum=%.0f, av= %.2f\n", c + 1, sum, av);
}
prs();
};
//计算所有数的平均值
void av_all(double ar[][COL], int row) {
double sum = 0.0;
double av = 0;
int c, r;
for (c = 0; c )
for (r = 0; r )
sum += ar[r][c];
av = sum / ROW / COL;
printf(" ALL sum=%.0f, av= %.2f\n", sum, av);
prs();
}
//找出所有数的最大值
void find_big(double ar[][COL], int row) {
double big;
int c, r;
for (c = 0; c ) {
double sum = 0.0;
for (r = 0; r )
{
big = ar[0][0];
if (big ar[r][c])
big = ar[r][c];
}
}
printf("The biggest num is %.2f\n\n",big);
return 0;
}
void prs(void) {
printf("\n*******************************\n");
}
14 2维数组练习
标签:输入 The ret 第一个 数组 程序 return ber sum
原文地址:https://www.cnblogs.com/abel2020/p/12983702.html