二维数组练习
矩形转阵
将矩阵的行列互换得到的新矩阵称为转置矩阵。
- 输入两个整数分别代表原数组的行和列,输入数据填充,最后打印出交换过行和列的矩阵
#include <stdio.h>
int main()
{
int m, n;
scanf("%d%d", &m, &n);//输入想要的行和列
printf("row=%d\ncolumn=%d",m,n);
int arr[10][10] = { 0 };//二维数组的初始化,m和n最大为10.
int i;
for (i = 0; i < m;i++)//外循环
{
int j;
for (j = 0; j < n; j++)//内循环
{
scanf("%d", &arr[i][j]);
}
}//输入数据内容
int j;
for (j = 0; j < n; j++)//外循环,表示行
{
int i;
for (i = 0; i < m; i++)//内循环,表示列
{
printf("%d ", arr[i][j]);//输出你想要的交换过的数据
}
printf("\n");//每经过一次内循环,即每打出一行数便换行,比较规范美观
}
return 0;
}
一维数组练习
逆序输出
- 输入10个整数,逆序输出
#include <stdio.h>
int main() {
int arr[10];
int i;
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);//输入10个元素
}
for(i=9;i>=0;i--)
{
printf("%d ",arr[i]);//输出10个元素
}
return 0;
}
求平均值
- 输入10个整数,求平均值。
#include <stdio.h>
int main() {
int arr[10];
int i;
float sum=0.0,aver=0.0;
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
sum += arr[i];//累加
}
aver = sum/10;
printf("%f", aver);
return 0;
}
交换数组
两个大小相同的数组进行交换。
#include <stdio.h>
int main()
{
int arr1[10] = {0};
int arr2[10] = {0};
int i = 0;
printf("请输入10个数字:");
for(i=0; i<10; i++)
{
scanf("%d", &arr1[i]);
}
printf("请输入10个数字:");
for(i=0; i<10; i++)
{
scanf("%d", &arr2[i]);
}
for(i=0; i<10; i++)
//数组交换
{
int temp = arr1[i];
arr1[i] = arr2[i];
arr2[i] = temp;
}
return 0;
}
一维数组选择题
char arr1[] = "abcdefg";
char arr2[] = { 'a','b','c','d','e','f','g'};
对于上述代码,正确的是:C
A.数组acX和数组acY等价
B.数组acX和数组acY的长度相同
C.sizeof(arr1)>sizeof (arr2)
D.strlen (arr1)>strlen (arr2)
-
A选项数组arr1和数组arr2都是字符数组,但是初始化表达式不同,arr1中的元素笔arr2中的元素多了"\0",所以两者不一样。
-
B长度不同
-
C选项:sizeof这里求的是数组大小,数组大小等于有效元素个数*每个元素的大小。sizeof(arr1) = 8, sizeof(arr2) = 7.
-
D选项:strlen求的是字符串长度,从首元素开始计算,遇见‘\0’停止,由于arr2数组没有’\0‘,所以strlen(arr2)的结果是个随机值.