1.数组内容反向输出
2.交换数组,将两个数组内容交换
*3.打印杨辉三角
4.输入一个值,要求按照原来的规律插入数组中
5.打印菱形
1.1数组内容反向输出
#include<stdio.h>
void print(int arr[], int sz)
{
int i;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
}
void rev(int arr[], int sz)
{
int left = 0;
int right = sz - 1;
while(left<right)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
printf("\n");
}
int main()
{
int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
int sz = sizeof(arr) / sizeof(arr[0]);
print(arr, sz);
rev(arr, sz);
print(arr, sz);
return 0;
}
0,1,2,3,4,5,6,7,8,9
9,8,7,6,5,4,3,2,1,0
2.1交换数组,将两个数组内容交换
void rev(char arr1[], char arr2[], int sz)
{
int i = 0
for (i = 0
{
int tmp = arr1[i]
arr1[i] = arr2[i]
arr2[i] = tmp
}
}
int main()
{
char arr1[] = "abcd"
char arr2[] = "efgh"
int sz = sizeof(arr1) / sizeof(arr1[0])
printf("%s\n%s", arr1, arr2)
rev(arr1, arr2, sz)
printf("\n%s\n%s", arr1, arr2)
return 0
}
//结果:
abcd
efgh
efgh
abcd
*3.1打印杨辉三角
/杨辉三角规律
//1.每一个数等于它上方两数之和
//2.每行数字左右对称
//3.第n行有n项
int main()
{
int i,j,k=0
int arr[line][line] = { 0 }
//对二维数组赋值
for (i = 0
{
for (j = 0
{
if(j==0||j==i)//每行第一列和最后一列
{
arr[i][j] = 1
}
else//每一个数等于它上面两个数之和
{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j]
}
}
}
//打印杨辉三角
//i决定行数,j决定列数
for (i = 0
{
for (k = 1
{
printf(" ")
}
for (j = 0
{
printf("%3d ", arr[i][j])
}
printf("\n")
}
return 0
}
4.1输入一个值,要求按照升序插入数组中
void Sort(int arr[],int n)
{
int j,k
for (j =10
{
k = j + 1
if(n>arr[j])
{
arr[k] = n
break
}
else
{
arr[k]=arr[j]
}
}
}
int main()
{
int num,i
int arr[12] = { 1,3,5,7,9,11,13,15,17,19,21,0 }
int sz = sizeof(arr) / sizeof(arr[0])
printf("原来的排序\n")
for (i = 0
{
printf("%d ", arr[i])
}
printf("\n")
scanf_s("%d", &num)
Sort(arr,num)
printf("\n插入后的排序\n")
for (i = 0
{
printf("%d ", arr[i])
}
return 0
}
//结果:
输入10
输出1 3 5 7 9 10 11 13 15 17 19 21
5.1打印菱形
#include<stdio.h>
#define line 7
int main()
{
int i,j,k = 0;
for (k = 0; k < line; k++)
{
for (i = 0; i <line-k; i++)
{
printf(" ");
}
for (j = 0; j <=k; j++)
{
printf(" *");
}
printf("\n");
}
for (k = 0; k < line; k++)
{
for (i = 0; i <k+2; i++)
{
printf(" ");
}
for (j = 0; j < line - k-1; j++)
{
printf(" *");
}
printf("\n");
}
return 0;
}