C语言实例(九)数组

62.使用for循环输出数组

(1)代码

#if 0
#include <stdio.h>
#include <windows.h>
int main() 
{
	int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
	int loop;

	for(loop = 0; loop < 10; loop++)
		printf("%d ", array[loop]); 
	printf("\n");
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

63.使用 for 循环逆向输出数组

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main() 
{
	int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
	int loop; 
	for(loop = 9; loop >= 0; loop--)
		printf("%d ", array[loop]);
	printf("\n");
	system("pause");   
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

64.计算数组元素之和:使用 for 循环迭代出输出数组元素,并将各个元素相加。

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main() 
{
	int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
	int sum, loop;
	sum = 0; 
	for(loop = 9; loop >= 0; loop--) 
	{
		sum = sum + array[loop];      
	}
	printf("元素和为:%d\n", sum);   
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

65.给定数组,计算数组元素平均值:使用 for 循环迭代出输出元素,并将各个元素相加算出总和,再除于元素个数.

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main() 
{
	int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
	int sum, loop;
	float avg = 0;

	sum = 0;

	for(loop = 0; loop < 10; loop++) 
	{
		sum = sum + array[loop];
	}
	avg = (float)sum / loop;

	printf("平均值为 %.2f\n", avg);
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

66.用户自定义输入数组,计算数组元素的平均值

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main()
{
	int n, i;
	float num[100], sum = 0.0, average;

	printf("输入元素个数: ");
	scanf("%d", &n);

	//输入元素的个数为负值或者大于数组大小时,重新输入。
	while (n > 100 || n <= 0)
	{
		printf("Error! 数字需要在1 到 100 之间。\n");
		printf("再次输入: ");
		scanf("%d", &n);
	}
	//输入数组元素,并求和
	for(i = 0; i < n; ++i)
	{
		printf("%d. 输入数字: ", i+1);
		scanf("%f", &num[i]);
		//输入一个加一次
		sum += num[i];
	}
	//求平均值
	average = sum / n;
	printf("平均值 = %.2f\n", average);
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

67.数组拷贝:将一个数组复制给另外一个数组:

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main() 
{
	int original[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
	int copied[10];
	int loop;
	//拷贝数组
	for(loop = 0; loop < 10; loop++) 
	{
		copied[loop] = original[loop];
	}
	//输出格式设置
	printf("元素数组 -> 拷贝后的数组 \n");
	//按格式打印在控制台
	for(loop = 0; loop < 10; loop++) {
		printf("   %2d        %2d\n", original[loop], copied[loop]);
	}
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

68.查找数组中最大的元素值

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main() 
{
	int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
	int loop, largest;
	//假定数组第一个元素为最大值
	largest = array[0];
	//遍历数组
	for(loop = 1; loop < 10; loop++) 
	{  
		//数组元素大于最大的数,那就将现在的数赋值给largest
		if( largest < array[loop] )
			largest = array[loop];
	}
	printf("最大元素为 %d\n", largest);   
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

69.用户自定义输出,查找数组中最大的元素值

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main()
{
	int i, n;
	float arr[100];

	printf("输入元素个数(0~100): ");
	scanf("%d", &n);
	printf("\n");

	//接收用户输入
	for(i = 0; i < n; ++i)
	{
		printf("输入数字 %d: ", i+1);
		scanf("%f", &arr[i]);
	}
	//循环,并将最大元素存储到 arr[0]
	for(i = 1; i < n; ++i)
	{
		// 如果要查找最小值可以将 < 换成 > 
		if(arr[0] < arr[i])
			arr[0] = arr[i];
	}
	printf("最大元素为 = %.2f\n", arr[0]);
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

70.查找数组中最小的元素

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main() 
{
	int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
	int loop, smallest;

	smallest = array[0];

	for(loop = 1; loop < 10; loop++) 
	{
		if( smallest > array[loop] )
			smallest = array[loop];
	}
	printf("最小元素为 %d\n", smallest);   
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

71.计算标准偏差

(1)代码

#if 1
#include <stdio.h>
#include <math.h>
#include <windows.h>
//声明
float calculateSD(float data[]);
//定义
float calculateSD(float data[])
{
	float sum = 0.0, mean, standardDeviation = 0.0;
	int i;
	//获取数组元素,并求和
	for(i=0; i<10; ++i)
	{
		sum += data[i];
	}
	//平均值
	mean = sum/10;

	for(i=0; i<10; ++i)
		//获取每个元素-平均值后,的平方,并求和。
			standardDeviation += pow(data[i] - mean, 2);
	//获取最终的标准差
	return sqrt(standardDeviation/10);
}
int main()
{
	int i;
	float data[10];

	printf("输入10个元素: ");
	for(i=0; i < 10; ++i)
		scanf("%f", &data[i]);

	printf("\n标准偏差 = %.6f\n", calculateSD(data));
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

72.数组拆分:将一个数组拆分为两个数组,一个为奇数数组,一个为偶数数组.

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main() 
{
	int array[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
	int even[10], odd[10];
	int loop, e, d;

	e = d = 0;

	for(loop = 0; loop < 10; loop++) 
	{
		if(array[loop]%2 == 0) 
		{
			//偶数
			even[e] = array[loop];
			e++;
		}
		else 
		{
			//奇数
			odd[d] = array[loop];
			d++;
		}
	}
	printf(" 原始数组 -> ");
	for(loop = 0; loop < 10; loop++)
		printf(" %d", array[loop]);

	printf("\n 偶数 -> ");
	for(loop = 0; loop < e; loop++)
		printf(" %d", even[loop]);   

	printf("\n 奇数 -> ");
	for(loop = 0; loop < d; loop++)
		printf(" %d", odd[loop]);   
	printf("\n");
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

73.数组和并:将奇数数组与偶数数组合并为一个数组:

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main() 
{
	int array[10];
	int even[5] = {0, 2, 4, 6, 8};
	int odd[5]  = {1, 3, 5, 7, 9};
	int loop, index, e_len, o_len;
	e_len = o_len = 5;
	index = 0;

	for(loop = 0; loop < e_len; loop++) 
	{
		array[index] = even[loop];
		index++;
	}

	for(loop = 0; loop < o_len; loop++) 
	{
		array[index] = odd[loop];
		index++;
	}
	printf("\n偶数 -> ");
	for(loop = 0; loop < e_len; loop++)
		printf(" %d", even[loop]);

	printf("\n奇数  -> ");
	for(loop = 0; loop < o_len; loop++)
		printf(" %d", odd[loop]);

	printf("\n合并后 -> ");
	for(loop = 0; loop < 10; loop++)
		printf(" %d", array[loop]);
	printf("\n");
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

74.使用指针访问数组元素

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main()
{
	int data[5], i;

	printf("输入元素: ");
	for(i = 0; i < 5; ++i)
		scanf("%d", data + i);

	printf("你输入的是: \n");
	for(i = 0; i < 5; ++i)
		printf("%d\n", *(data + i));
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

75.矩阵转换

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main()
{
	int a[10][10], transpose[10][10], r, c, i, j;
	printf("输入矩阵的行与列: ");
	scanf("%d %d", &r, &c);

	//从键盘获取矩阵元素
	printf("\n输入矩阵元素:\n");
	for(i=0; i<r; ++i)
	{
		for(j=0; j<c; ++j)
		{
			printf("输入元素 a%d%d: ",i+1, j+1);
			scanf("%d", &a[i][j]);
		}
	}

	//显示输入的矩阵 a[][] */
	printf("\n输入矩阵: \n");
	for(i=0; i<r; ++i)
	{
		for(j=0; j<c; ++j)
		{
			printf("%d  ", a[i][j]);
			//每行输入完成后换行
			if (j == c-1)
				printf("\n\n");
		}
	}
	//转换数组元素
	for(i=0; i<r; ++i)
	{
		for(j=0; j<c; ++j)
		{
			//i和j交换位置
			transpose[j][i] = a[i][j];
		}
	}
	//显示转换后的矩阵a
	printf("\n转换后矩阵:\n");
	for(i=0; i<c; ++i){
		for(j=0; j<r; ++j)
		{
			printf("%d  ",transpose[i][j]);
			if(j==r-1)
				printf("\n\n");
		}
	}
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

76.两个矩阵相加:使用多维数组将两个矩阵相加。

(1)代码

#if 1
#include <stdio.h>
#include <windows.h>
int main()
{
	int r, c, a[100][100], b[100][100], sum[100][100], i, j;

	printf("输入行数 ( 1 ~ 100): ");
	scanf("%d", &r);
	printf("输入列数 ( 1 ~ 100): ");
	scanf("%d", &c);

	//获取第一个数组元素
	printf("\n输入第一维数组的元素:\n");
	for(i=0; i<r; ++i)
	{
		for(j=0; j<c; ++j)
		{
			printf("输入元素 a%d%d: ",i+1,j+1);
			scanf("%d",&a[i][j]);
		}
	}
	//获取第二个数组元素
	printf("输入第二维数组的元素:\n");
	for(i=0; i<r; ++i)
	{
		for(j=0; j<c; ++j)
		{
			printf("输入元素 a%d%d: ",i+1, j+1);
			scanf("%d", &b[i][j]);
		}
	}
	//将两个数组相加
	for(i=0;i<r;++i)
	{
		for(j=0;j<c;++j)
		{
			sum[i][j]=a[i][j]+b[i][j];
		}
	}
	//显示结果
	printf("\n二维数组相加结果: \n\n");

	for(i=0;i<r;++i)
	{
		for(j=0;j<c;++j)
		{
			printf("%d   ",sum[i][j]);

			if(j==c-1)
			{
				printf("\n\n");
			}
		}
	}
	system("pause");
	return 0;
}
#endif

(2)运行结果

在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值