1 Star 0 Fork 0

CoderQi/cg初学

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
1119实验题.c 3.63 KB
一键复制 编辑 原始数据 按行查看 历史
CoderQi 提交于 2022-11-19 22:21 +08:00 . 1119
#define _CRT_SECURE_NO_WARNINGS
//1.
//#include <stdio.h>
//#include <math.h>
//int main()
//{
// int i, k;
// float a[10], ave = 0, b, d;
// float* p = a;
//
// for (i = 0; i < 10; i++)
// scanf("%f", p + i);
// for (i = 0; i < 10; i++)
// ave += p[i];
//
// ave /= 10;
// k = 0;
//
// d = fabs(p[0] - ave);
// for (i = 0; i < 10; i++)
// {
// b = fabs(p[i] - ave);
// if (b < d)
// {
// d = b;
// k = i;
// }
//
// }
// printf("average value: %f\n", ave);
// printf("near value: %f, %f\n", d, p[k]);
// return 0;
//}
//2.程序修改:利用指向一维数组的指针,将一个含有M(M <= 10)个整数的一维数组中小于平均值的所有元素顺序删除掉。例如,原数组为3,5,7,4,1,各元素的平均值为4,则删除后的数组应为5,7,4。编辑并调试程序。
//注意:错误之处在注释行的下一行,不得增加或删除行,也不得更改程序的结构。
//说明:(1)定义下标i和j, i用于查看数组中的每个元素,j用于保留大于或等于平均值的元素,另设变量k从0开始计数,记录新数组中的元素个数。
//(2)用for循环取出数组中的每个元素,与平均值比较,如果下表为i的元素大于或等于平均值,则将它保留在以j为下标的元素中,并将k + 1, 然后将j + 1。
//
//参考程序如下:
//#include <stdio.h>
//#define M 10
//int main()
//{
// int a[M], * p = a, ave = 0;
// int i, j, k, n;
// printf("input n");
// scanf("%d", &n);
// printf("input %d nums", n);
//
// for (i = 0; i < n; i++)
// /*********found**********/
// scanf("%d", p + i);
// for (i = 0; i < n; i++)
// ave = ave + p[i];
//
// ave = ave / n;
// k = 0;
// for (i = 0, j = 0; i < n; i++)
// if (p[i] >= ave)
// /*********found**********/
// {
// p[j] = p[i];
// k++;
// j++;
// }
//
// for (i = 0; i < k; i++)
// {
// printf("%d\n", p[i]);
// }
//
// return 0;
//}
//3.编写程序,把 * **号处的程序写完整。利用行指针找出二维数组a[M][N]每一行中的最大值,但后从中找出最小值。
// 给定数组如下,则最小值为4。在程序的画线处填入正确的内容,并把下划线删除。调试并运行程序,输出正确的结果。
//a[M][N] = [█(■(1 & 3 & ■(2 & 4 & 5)@6 & 2 & ■(0 & 4 & 6)@5 & 7 & ■(2 & 5 & 7))@■(2 & 1 & ■(7 & 3 & 8)@1 & 2 & ■(3 & 4 & 3)))]
//说明:(1)先定义数组a[M][N]、s[M]及指向数组a的行指针( * p)[N], 将每一行的最大值存放在数组s中,然后在数组s中找出最小值。
//(2)先找出数组每一行的最大值,放入数组s中,然后再算出数组s的最小值。再输出最小值。
//#include <stdio.h>
//#define M 5
//#define N 5
//int main()
//{
// int s[M], i, j, min;
// int a[M][N], (*p)[N] = a;
//
// for (i = 0; i < M; i++)
// for (j = 0; j < N; j++)
// scanf("%d", *(p+i)+j);
//
// for (i = 0; i < M; i++)
// {
// s[0] = p[0][i];
// for (j = 1; j < N; j++)
// if (s[i] < p[i][j])
// s[i] = p[i][j];
// }
// min = s[0];
//
// for (i = 1; i < M; i++)
// if (min > s[i])
// min = s[i];
//
// printf("Min=%d\n", min);
// return 0;
//}
//4.编写程序,计算一个整型M行N列二维数组的周边元素之和(要求使用指针数组访问二维数组)。例如,给定二维数组A,则周边元素之和为61。
//A = [█(■(1 & 3 & ■(5 & 7 & 9)@2 & 9 & ■(9 & 9 & 4)@6 & 9 & ■(9 & 9 & 8))@ 1 3 5 7 0)]
#include<stdio.h>
#define m 4
#define n 4
int main()
{
int arr[m][n];
int(* p)[n] = arr;
int i = 0;
int j = 0;
int sum = 0;
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
int sum4 = 0;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", p[i] + j);
}
}
if (m<=2&&n<=2)
{
sum = p[0][0] = p[0][1] + p[1][0] + p[1][1];
}
else
{
for (i = 0; i < n; i++)
{
sum1 = sum1 + p[0][i];
sum2 = sum2 + p[m - 1][i];
}
for (j = 1; j < m-1; j++)
{
sum3 = sum3 + p[j][0];
sum4 = sum4 + p[j][n - 1];
}
sum = sum1 + sum2 + sum3 + sum4;
}
printf("%d\n", sum);
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/programmercg/cg-beginner.git
git@gitee.com:programmercg/cg-beginner.git
programmercg
cg-beginner
cg初学
master

搜索帮助