C语言(数组,DEVFORGE学编程社区)

1、右下角

 1 #include <stdio.h>
 2 #include <malloc.h>
 3 int main()
 4 {
 5     int n;
 6     scanf("%d",&n);
 7     
 8     int *arr = (int*)malloc(sizeof(int)*n*n); //一维模拟二维数组
 9     
10     for(int a=0; a<n*n; ++a)
11     {
12         scanf("%d",&arr[a]);
13     }
14     
15     for(int i=0; i<n; ++i)
16     {
17         for(int j=0; j<n-i-1; ++j)//左上角输出空格
18         {
19             printf("  ");
20         }
21         for(int k=n-i-1; k<n; ++k)//右下角输出数组元素
22         {
23             printf("%d ",arr[i*n+k]);//模拟
24         }
25         printf("\n");
26     }
27 
28     return 0;
29 }

2、插入排序

 1 #include <stdio.h>
 2 #include <malloc.h>
 3 
 4 void InsertSort(int *arr, int m)
 5 {
 6     int i;
 7     for(i=1; i<m; ++i){/*第0个元素有序,从第1个元素向右无序*/
 8         int j=i-1,key=arr[i];/*保存第i个元素,左边的元素i-1*/
 9         while(j>=0 && key>arr[j]){/*保存的元素key与之前的元素从右向左逐个比较*/
10             arr[j+1]=arr[j];/*移动(向后赋值)*/
11             j--;
12         }
13         arr[j+1]=key;/*j--退出,恢复正确值j+1*/
14     }
15 }
16 
17 int main()
18 {
19     int n;
20     scanf("%d",&n);
21     
22     int *arr = (int*)malloc(sizeof(int)*n); 
23     
24     for(int i=0; i<n; ++i)
25     {
26         scanf("%d",&arr[i]);
27     }
28     
29     int s,m;
30     scanf("%d%d",&s,&m);
31     
32     InsertSort(&arr[s],m);
33     
34     for(int j=0; j<n; ++j)
35     {
36         printf("%d ",arr[j]);
37     }
38     
39     return 0;
40 }

3、边缘与内心的差

猜你喜欢

转载自www.cnblogs.com/GoldenEllipsis/p/11553300.html