第一范文网 - 专业文章范例文档资料分享平台

C语言课后习题部分答案-原版2012-12-10

来源:用户分享 时间:2025/6/7 9:46:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

}

【6.1】编函数判断任意给定的二维整数组(100X100)中是否有相同元素。 #include int main(void) {

int i = 0, j = 0; int array[100][100];

int value = 1;

for (; i < 100; i++) {

for (j = 0; j < 100; j++) {

array[i][j] = value; value++; } }

int m,n;

array[17][99] = 8888; //预设置一个相同的数值 _Bool bSame = 0;

for (i = 0; i < 100; i++) {

for (j = 0; j < 100; j++) {

int temp = array[i][j];

n = j + 1;

for (m = i; m < 100; m++) {

for (; n < 100; n++) {

if (temp == array[m][n]) {

printf(\, m, n); bSame = 1; goto over; } }

n = 0; //纵坐标归0 }

} }

over:

if (bSame) {

printf(\包含相同元素\); } else {

printf(\不包含相同元素\); }

return 0; }

【6.3】 编写函数将矩阵转置 #include

void print(int array[][4]) {

int i,j;

for (i = 0; i < 4; i++) {

for (j = 0; j < 4; j++) {

printf(\, array[i][j]); }

printf(\); } }

int main(void) {

int i = 0, j;

int array[4][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};

print(array);

for (; i < 4; i++) {

for (j = i; j < 4; j++) {

}

int temp = array[i][j]; array[i][j] = array[j][i]; array[j][i] = temp; }

printf(\转置之后的结果为\\n\); print(array);

return 0; }

【6.6】 编写函数,把数组中的相同元素删除 #include

#define GET_ARRAY_LEN(array,len){len = (sizeof(array) / sizeof(array[0]));}

//本题将删除元素后的数组最后一个元素设置为-1 int len;

void removeArray(int *array) {

int i, j, k;

for (i = 0; i < len - 1; i++) {

for (j = i + 1; j < len; ) {

if (array[j] == -1 || array[i] != array[j]) {

j++; } else { }

//移动后面的元素

for (k = j; k < len - 1; k++) {

array[k] = array[k + 1]; }

array[len - 1] = -1; //设置最后一个元素为-1 } } }

int main(void) {

int array[] = {12, 14, 50, 67, 14, 45, 50, 50, 1, 32};

GET_ARRAY_LEN(array, len);

removeArray(array);

int i = 0;

for (; i < len; i++) {

printf(\, array[i]); }

return 0; }

【6.7】 找出给定二维数组中所有鞍点。若数组元素A[i][j]恰好是第i行的最小值,第j列的最大值则称为鞍点。 #include

void print(int array[][4]); int main(void) {

int array[4][4] = {{12, 33, 45, 67}, {99, 78, 88, 69}, {5, 123, 66, 51}, {43, 32, 76, 29}};

int i, j, k;

print(array);

for (i = 0; i < 4; i++) {

int rowMin = array[i][0]; int minY = 0;

for (j = 1; j < 4; j++) {

if (array[i][j] < rowMin) {

rowMin = array[i][j]; //记录当前行的最小值 minY = j; } }

//内层循环结束,表示完成一行比对,获取到了当前行的最小值,使用minY坐标获取该列的最大值

搜索更多关于: C语言课后习题部分答案-原版2012-12-10 的文档
C语言课后习题部分答案-原版2012-12-10.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c67z5v2llog6i8ss1cmtb_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top