c语言从键盘输入4×4整数数组,输出每行与每列的和

1个回答
展开全部
摘要 您可以使用C语言中的二维数组来表示4x4整数数组,并通过对每行和每列进行求和来实现输出。以下是示例代码:
咨询记录 · 回答于2023-05-20
c语言从键盘输入4×4整数数组,输出每行与每列的和
实现一个“观察”函数 dig。要求dig函数可以从内存的指定位置“挖出”一个指定类型的对象。先支持挖4种类型,它们是int, char, double, float。站在dig函数的角度看,它需要调用者(比如main函数)提供位置信息,这是一个地址,或者叫指针。我们知道指针都是有关联类型的,所以通过 * 就可以提取出该位置的对象。比如传进来一个int型指针,那么*一下就可以得到一个int。按照这个思路,容易实现 void dig(int *) 来挖int。但是它无法挖出double或其它类型,这时因为其它类型的指针无法通过 int *来传递。显然我们可以把 void dig(int *) 换为 void dig(void *),这样可以把任意类型的指针传进来,但是,类型信息丢失了。对 void 指针进行*操作时非法的。
您可以使用C语言中的二维数组来表示4x4整数数组,并通过对每行和每列进行求和来实现输出。以下是示例代码:
对void 指针进行*操作前,要把它传递给具体的指针变量。比如交给int 型指针,挖出来的就是int,交给double型指针,挖出来的就是double。但是dig 不知道要挖什么类型!从 void 指针已经看不出原来的类型了。所以dig 要增加第2个参数,说明要挖的类型。我们可以把char, int, float, double 编码成 0,1,2,3。用 dig(地址,1)表示要挖int;dig(地址,3)表示要挖double。dig根据第2个参数指定的类型,把第1个参数,泛指针的值交给该类型的指针,然后进行*操作。请实现这个函数。
#include int main() { int arr[4][4]; int row, col; // 从键盘读入4x4整数数组 printf("请输入4x4整数数组:\n"); for(row=0; row<4; row++) { for(col=0; col<4; col++) { scanf("%d", &arr[row][col]); } }
// 求每行和并输出 printf("每行的和为:\n"); for(row=0; row<4; row++) { int sum = 0; for(col=0; col<4; col++) { sum += arr[row][col]; } printf("第%d行的和为:%d\n", row+1, sum); } // 求每列和并输出 printf("每列的和为:\n"); for(col=0; col<4; col++) { int sum = 0; for(row=0; row<4; row++) { sum += arr[row][col]; } printf("第%d列的和为:%d\n", col+1, sum); } return 0;}
在上述代码中,我们首先定义一个4x4的二维数组arr,用于表示输入的整数数组。然后,使用两个嵌套的for循环从键盘读入数组,并依次求出每行和和每列和,并输出到屏幕上。
c语言写一通用函数,实现从一个一维数组中寻找指定的一个数,若找到返回该数所在的下标,否则返回-1。提示:函数原型可设计为:int search(int* a, int n, int find),参数中n是数组的长度,find为要查找的数。
下面是用 C 语言实现从一个一维数组中寻找指定的一个数的通用函数:cint search(int* a, int n, int find) { int i; for (i = 0; i < n; i++) { if (a[i] == find) { // 找到了 return i; // 返回该数所在的下标 } } return -1; // 没有找到}在这个函数中,我们使用 for 循环依次遍历数组 a 中的每个元素,判断是否与要查找的数 find 相等。如果找到则返回该元素所在的下标,否则返回 -1。
这个函数的使用方法如下:cint main() { int a[] = {1, 2, 3, 4, 5}; int n = sizeof(a) / sizeof(int); int find = 3; int idx = search(a, n, find); if (idx == -1) { printf("没有找到%d\n", find); } else { printf("%d的下标是%d\n", find, idx); } return 0;}这里我们定义了一个数组 a,长度为5,内容为{1, 2, 3, 4, 5},要查找的数为 3。将数组 a 和要查找的数 find 作为参数传递给 search 函数,得到返回值 idx,如果返回值为-1,则表示没有找到要查找的数,否则返回值就是该数所在的下标。
亲,还有什么问题吗?
这个老师也不太会,我只能解决主问题和一些会的附加问题,并不是全部都能在知识库里修改使用。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消