20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises23

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises23

P241

在这里插入图片描述

源始下载的代码

#include <stdio.h>

/* userCode(<50字符): 自定义函数之原型声明 */
______________________________

int main(void)
{
	int arrA[5], arrB[8];

	printf("请输入5个数:");
	scanf("%d%d%d%d%d", &arrA[0], &arrA[1], &arrA[2], &arrA[3], &arrA[4]);
	printf("请输入8个数:");
	scanf("%d%d%d%d%d%d%d%d", &arrB[0], &arrB[1], &arrB[2], &arrB[3], &arrB[4], &arrB[5], &arrB[6], &arrB[7]);

	printf("\narrA = ");
	______________________________  /* userCode(<30字符): 调用函数输出arrA的所有元素 */
	printf("\narrB = ");
	______________________________  /* userCode(<30字符): 调用函数输出arrB的所有元素 */

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */

修改以后的代码

#include <stdio.h>

/* userCode(<50字符): 自定义函数之原型声明 */
void printfArr(int arr[], int cnt);

int main(void)
{
	int arrA[5], arrB[8];

	printf("请输入5个数:");
	scanf("%d%d%d%d%d", &arrA[0], &arrA[1], &arrA[2], &arrA[3], &arrA[4]);
	printf("请输入8个数:");
	scanf("%d%d%d%d%d%d%d%d", &arrB[0], &arrB[1], &arrB[2], &arrB[3], &arrB[4], &arrB[5], &arrB[6], &arrB[7]);

	printf("\narrA = ");
    printfArr(arrA, 5); /* userCode(<30字符): 调用函数输出arrA的所有元素 */
    printf("\narrB = ");
	printfArr(arrB, 8);  /* userCode(<30字符): 调用函数输出arrB的所有元素 */

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
void printfArr(int arr[], int cnt)
{
    int i;
    for ( i = 0; i < cnt; i++)
    {
        printf("%d ", arr[i]);
    }
}

P243

在这里插入图片描述

源始下载的代码

#include <stdio.h>

/* userCode(<50字符): 自定义函数之原型声明 */
______________________________

int main(void)
{
	int arrA[5], arrB[8];
	float avgA, avgB;

	printf("请输入5个数:");
	scanf("%d%d%d%d%d", &arrA[0], &arrA[1], &arrA[2], &arrA[3], &arrA[4]);
	printf("请输入8个数:");
	scanf("%d%d%d%d%d%d%d%d", &arrB[0], &arrB[1], &arrB[2], &arrB[3], &arrB[4], &arrB[5], &arrB[6], &arrB[7]);

	______________________________  /* userCode(<30字符): 调用函数计算arrA所有元素的平均值 */
	printf("\nAvg(arrA) = %.1f", avgA);
	______________________________  /* userCode(<30字符): 调用函数计算arrB所有元素的平均值 */
	printf("\nAvg(arrB) = %.1f\n", avgB);

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */




修改以后的代码

#include <stdio.h>

/* userCode(<50字符): 自定义函数之原型声明 */
float getAvg(int arr[], int cnt);

int main(void)
{
	int arrA[5], arrB[8];
	float avgA, avgB;

	printf("请输入5个数:");
	scanf("%d%d%d%d%d", &arrA[0], &arrA[1], &arrA[2], &arrA[3], &arrA[4]);
	printf("请输入8个数:");
	scanf("%d%d%d%d%d%d%d%d", &arrB[0], &arrB[1], &arrB[2], &arrB[3], &arrB[4], &arrB[5], &arrB[6], &arrB[7]);

    avgA = getAvg(arrA, 5); /* userCode(<30字符): 调用函数计算arrA所有元素的平均值 */
    printf("\nAvg(arrA) = %.1f", avgA);
	avgB = getAvg(arrB, 8);  /* userCode(<30字符): 调用函数计算arrB所有元素的平均值 */
	printf("\nAvg(arrB) = %.1f\n", avgB);

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
float getAvg(int arr[], int cnt)
{
    float avg;
    float sum = 0;
    int i;
    // 求和
    for ( i = 0; i < cnt; i++)
    {
        sum += (float)arr[i];
    }
    // 求平均
    avg = sum / cnt;
    return avg;
}

P244

在这里插入图片描述

源始下载的代码

#include <stdio.h>

/* userCode(<70字符): 自定义函数之原型声明 */
______________________________

int main(void)
{
	int arrA[5], arrB[8], searchVal, positionA, positionB;

	printf("请输入5个数:");
	scanf("%d%d%d%d%d", &arrA[0], &arrA[1], &arrA[2], &arrA[3], &arrA[4]);
	printf("请输入8个数:");
	scanf("%d%d%d%d%d%d%d%d", &arrB[0], &arrB[1], &arrB[2], &arrB[3], &arrB[4], &arrB[5], &arrB[6], &arrB[7]);
	printf("请输入一个欲查找的数:");
	scanf("%d", &searchVal);

	______________________________  /* userCode(<50字符): 调用函数查找searchVal在arrA中的下标 */
	if (-1 == positionA)
	{
		printf("\narrA: not Find!");
	}
	else
	{
		printf("\narrA: position = %d", positionA);
	}

	______________________________  /* userCode(<50字符): 调用函数查找searchVal在arrB中的下标 */
	if (-1 == positionB)
	{
		printf("\narrB: not Find!\n");
	}
	else
	{
		printf("\narrB: position = %d\n", positionB);
	}

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */




修改以后的代码

#include <stdio.h>

/* userCode(<70字符): 自定义函数之原型声明 */
int indexArr(int arr[], int cnt, int search);

int main(void)
{
	int arrA[5], arrB[8], searchVal, positionA, positionB;

	printf("请输入5个数:");
	scanf("%d%d%d%d%d", &arrA[0], &arrA[1], &arrA[2], &arrA[3], &arrA[4]);
	printf("请输入8个数:");
	scanf("%d%d%d%d%d%d%d%d", &arrB[0], &arrB[1], &arrB[2], &arrB[3], &arrB[4], &arrB[5], &arrB[6], &arrB[7]);
	printf("请输入一个欲查找的数:");
	scanf("%d", &searchVal);

    positionA = indexArr(arrA, 5, searchVal); /* userCode(<50字符): 调用函数查找searchVal在arrA中的下标 */
    if (-1 == positionA)
	{
		printf("\narrA: not Find!");
	}
	else
	{
		printf("\narrA: position = %d", positionA);
	}

	positionB = indexArr(arrB, 8, searchVal);  /* userCode(<50字符): 调用函数查找searchVal在arrB中的下标 */
	if (-1 == positionB)
	{
		printf("\narrB: not Find!\n");
	}
	else
	{
		printf("\narrB: position = %d\n", positionB);
	}

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
int indexArr(int arr[], int cnt, int search)
{
    int result = -1;
    int i;
    for (i = 0; i < cnt; i++)
    {
        if (search == arr[i])   // (不考虑在数组中存在多个searchVal的情况),只要找一个,就可以结束搜索
        {
            result = i;
            break;
        }
    }
    return result;
}

P814

在这里插入图片描述

源始下载的代码

#include <stdio.h>

/* userCode(<50字符): 自定义函数之原型声明 */
______________________________

int main(void)
{
	int num[3][3], i, j, sum;

	printf("Please input the 3x3 Matrix:\n");
	for (i=0; i<3; i++)
	{
		for (j=0; j<3; j++)
		{
			scanf("%d", &num[i][j]);
		}
	}

	______________________________  /* userCode(<50字符): 调用函数计算矩阵所有元素之和 */
	printf("\nsum=%d\n", sum);
	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */




修改以后的代码

#include <stdio.h>

/* userCode(<50字符): 自定义函数之原型声明 */
int getSumArr(int num[][3], int cnt);

int main(void)
{
	int num[3][3], i, j, sum;

	printf("Please input the 3x3 Matrix:\n");
	for (i=0; i<3; i++)
	{
		for (j=0; j<3; j++)
		{
			scanf("%d", &num[i][j]);
		}
	}

    sum = getSumArr(num, 3); /* userCode(<50字符): 调用函数计算矩阵所有元素之和 */
    printf("\nsum=%d\n", sum);
	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
int getSumArr(int num[][3], int cnt)
{
    int sum = 0;
    int i, j;
    // 完成所有元素累加求和
    for ( i = 0; i < cnt; i++)
    {
        for ( j = 0; j < cnt; j++)
        {
            sum += num[i][j];
        }        
    }
    
    return sum;
}

P823

在这里插入图片描述

源始下载的代码

#include <stdio.h>

#define MAX 20

/* userCode(<80字符): 自定义函数之原型声明 */
______________________________

int main(void)
{
	int arrayA[MAX][MAX], arrayB[MAX][MAX], i, j, m;

	printf("Please input m: ");
	scanf("%d", &m);

	printf("Please input arrayA:\n");
	for (i=0; i<m; i++)
	{
		for (j=0; j<m; j++)
		{
			scanf("%d", &arrayA[i][j]);
		}
	}

	______________________________  /* userCode(<60字符): 调用函数实现数组内容变换 */
	printf("\nafter rotate:\n");
	for (i=0; i<m; i++)
	{
		for (j=0; j<m; j++)
		{
			printf("%6d", arrayB[i][j]);
		}
		putchar('\n');
	}

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */




修改以后的代码

#include <stdio.h>

#define MAX 20

/* userCode(<80字符): 自定义函数之原型声明 */
void rotate(int arrA[][MAX], int arrB[][MAX], int m);

int main(void)
{
	int arrayA[MAX][MAX], arrayB[MAX][MAX], i, j, m;

	printf("Please input m: ");
	scanf("%d", &m);

	printf("Please input arrayA:\n");
	for (i=0; i<m; i++)
	{
		for (j=0; j<m; j++)
		{
			scanf("%d", &arrayA[i][j]);
		}
	}

    rotate(arrayA, arrayB, m); /* userCode(<60字符): 调用函数实现数组内容变换 */
    printf("\nafter rotate:\n");
	for (i=0; i<m; i++)
	{
		for (j=0; j<m; j++)
		{
			printf("%6d", arrayB[i][j]);
		}
		putchar('\n');
	}

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
void rotate(int arrA[][MAX], int arrB[][MAX], int m)
{
    int i, j;
    // 先处理其它列的元素,不论怎么处理,矩阵A没有变化,只是在完成对矩阵B元素赋值
    for ( i = 0; i < m; i++)
    {
        for ( j = 0; j < m; j++)
        {
            arrB[i][j] = arrA[i][j];
        }
    }
    // 首列
    for ( i = 0; i < m; i++)
    {
        arrB[i][0] = arrA[m-1][i];
    }    
    // 最后一列
    for ( i = 0; i < m; i++)
    {
        arrB[i][m-1] = arrA[0][i];
    }    
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值