打印图形
A
AB
ABC
ABCD
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 char a='A';
7 int n;
8 printf("请输入要打印图像的长度");
9 scanf("%d",&n);
10 for(int i=0;i<=n;i++)
11 {
12 for(int j=0;j<i;j++)
13 {
14 printf("%c",a+j);
15 }
16 printf("\n");
17 }
18
19
20
21 return 0;
22 }
效果图
循环输入分数去除最大最小值且计算平均值
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //循环输入分数去除最大最小值且计算平均值
7 int n;
8 printf("请输入一共有多少个分数:");
9 scanf("%d",&n);
10 int arr[n];
11 for(int i=0;i<n;i++)
12 {
13 printf("请输入分数[%d]的值:",i+1);
14 scanf("%d",&arr[i]);
15 }
16 int max=arr[0];
17 int min=arr[0];
18 int sum=0,div;
19 for(int i=0;i<n;i++)
20 {
21 if(max<arr[i])
22 max=arr[i];
23 if(min>arr[i])
24 min=arr[i];
25 sum+=arr[i];
26 }
27 div=(sum-max-min)/(n-2);
28 printf("平均值是%d\n",div);
29
30
31
32
33
34 for(int i=0;i<n;i++)
35 {
36 printf("arr[%d]=%d\n",i,arr[i]);
37 }
38
39 return 0;
40 }
效果图
一维数组
输入数组长度,并且循环输入数组元素,循环打印数组元素
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5
6 {
7 //输入数组长度,并且循环输入数组元素,循环打印数组元素
8 int n;
9 printf("请输入数组的长度:");
10 scanf("%d",&n);
11 int arr[n];
12 for(int i=0;i<n;i++)
13 {
14 printf("请输入arr[%d]的值:",i);
15 scanf("%d",&arr[i]);
16 }
17 for(int i=0;i<n;i++)
18 {
19 printf("arr[%d]=%d\n",i,arr[i]);
20 }
21 return 0;
22 }
计算:数组的平均值,奇数下表对应元素的和,奇数元素的和
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //计算:数组的平均值,奇数下表对应元素的和,奇数元素的和
7 int n;
8 printf("请输入数组的长度:");
9 scanf("%d",&n);
10 int arr[n];
11 for(int i=0;i<n;i++)
12 {
13 printf("请输入arr[%d]的值:",i);
14 scanf("%d",&arr[i]);
15 }
16 int sum=0;
17 int sum_1=0;
18 int sum_2=0;
19 int dev=0;
20 for(int i=0;i<n;i++)
21 {
22 sum+=arr[i];
23 dev=sum/n;
24 if(i%2!=0)
25 {
26 sum_1+=arr[i];
27 }
28 if(arr[i]%2!=0)
29 {
30 sum_2+=arr[i];
31 }
32 }
33 printf("数组元素平均值:%d\n",dev);
34 printf("奇数下表对应元素和:%d\n",sum_1);
35 printf("奇数元素和:%d\n",sum_2);
36 for(int i=0;i<n;i++)
37 {
38 printf("arr[%d]=%d\n",i,arr[i]);
39 }
40 return 0;
41 }
效果图
输出数组的地址,数组名表示首地址
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //输出数组的地址,数组名表示首地址
7 int n;
8 printf("请输入数组的长度:");
9 scanf("%d",&n);
10 int arr[n];
11 for(int i=0;i<n;i++)
12 {
13 printf("请输入arr[%d]的值:",i);
14 scanf("%d",&arr[i]);
15 }
16 for(int i=0;i<n;i++)
17 {
18 printf("arr[%d]=%d\n",i,arr[i]);
19 printf("arr[%d]=%p\n",i,&arr[i]);
20 printf("arr[%d]=%p\n",i,arr+i);
21 }
22 for(int i=0;i<n;i++)
23 {
24 printf("arr[%d]=%d\n",i,arr[i]);
25 } return 0;
26 }
效果图
计算一维数组的最值
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //寻找最大值最小值并输出
7 int n;
8 printf("请输入数组的长度:");
9 scanf("%d",&n);
10 int arr[n];
11 for(int i=0;i<5;i++)
12 {
13 printf("请输入arr[%d]的值:",i);
14 scanf("%d",&arr[i]);
15 }
16 int max=arr[0];
17 int min=arr[0];
18 for(int i=0;i<n;i++)
19 {
20 if(max<arr[i])
21 max=arr[i];
22 if(min>arr[i])
23 min=arr[i];
24 }
25 printf("最大值是:%d\n",max);
26 printf("最小值是:%d\n",min);
27
28
29
30 for(int i=0;i<5;i++)
31 {
32 printf("arr[%d]=%d\n",i,arr[i]);
33 }
34 return 0;
35 }
效果图
查找数组,如果元素存在一次则输出下表,存在多次则输出次数,不存在则输出不存在
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //查找数组,如果元素存在一次则输出下表,存在多次则输出次数,不存在则输出不存在
7 int n;
8 printf("请输入数组的长度:");
9 scanf("%d",&n);
10 int arr[n];
11 for(int i=0;i<n;i++)
12 {
13 printf("请输入arr[%d]的值:",i);
14 scanf("%d",&arr[i]);
15 }
16 int search;
17 printf("请输入要查找的值:");
18 scanf("%d",&search);
19 int count=0;
20 int num=0;
21 for(int i=0;i<n;i++)
22 {
23 if(search==arr[i])
24 {
25 count++;
26 num=i;
27 }
28 }
29 if(count==0)
30 printf("%d不在数组中\n",search);
31 if(count==1)
32 printf("%d的下表是%d\n",search,num);
33 if(count>=2)
34 printf("%d存在%d次\n",search,count);
35
36
37
38
39
40
41 /* for(int i=0;i<n;i++)
42 {
43 printf("arr[%d]=%d\n",i,arr[i]);
44 }*/
45 return 0;
46 }
效果图
冒泡排序(从小到大)
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //冒泡排序(从小到大)
7 int n;
8 printf("请输入数组的长度:");
9 scanf("%d",&n);
10 int arr[n];
11 for(int i=0;i<n;i++)
12 {
13 printf("请输入arr[%d]的值:",i);
14 scanf("%d",&arr[i]);
15 }
16 int temp=0;
17 for(int i=0;i<n;i++)
18 {
19 for(int j=0;j<n-i;j++)
20 {
21 if(arr[j]>arr[j+1])
22 {
23 temp=arr[j+1];
24 arr[j+1]=arr[j];
25 arr[j]=temp;
26 }
27 }
28 }
29 for(int i=0;i<n;i++)
30 {
31 printf("arr[%d]=%d\n",i,arr[i]);
32 } return 0;
33 }
效果图
简单选择排序
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //简单选择排序
7 int n;
8 printf("请输入数组的长度:");
9 scanf("%d",&n);
10 int arr[n];
11 for(int i=0;i<n;i++)
12 {
13 printf("请输入arr[%d]的值:",i);
14 scanf("%d",&arr[i]);
15 }
16 int max;
17 int index;
18 for(int i=0;i<n-1;i++)
19 {
20 max=i;
21 for(int j=i;j<n;j++)
22 {
23 if(arr[max]<arr[j])
24 {
25 max=j;
26 }
27 }
28 index=arr[i];
29 arr[i]=arr[max];
30 arr[max]=index;
31 }
32 for(int i=0;i<n;i++)
33 {
34 printf("arr[%d]=%d\n",i,arr[i]);
35 }
36 return 0;
37 }
效果图
循环输入二维数组,并输出最大值和最大值所在行列
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //循环输入二维数组,并输出最大值和最大值所在行列
7 int l,r;
8 printf("请输入行数:");
9 scanf("%d",&l);
10 printf("请输入列数:");
11 scanf("%d",&r);
12 int arr[l][r];
13 for(int i=0;i<l;i++)
14 {
15 for(int j=0;j<r;j++)
16 {
17 printf("请输入arr[%d][%d]=",i,j);
18 scanf("%d",&arr[i][j]);
19 }
20 }
21 int max=arr[0][0];
22 int line=0;
23 int row=0;
24 for(int i=0;i<l;i++)
25 {
26 for(int j=0;j<r;j++)
27 {
28 if(max<arr[i][j])
29 {
30 max=arr[i][j];
31 line=i+1;
32 row=j+1;
33 }
34 }
35 }
36 printf("最大值为:%d\n",max);
37 printf("最大值在%d行%d列\n",line,row);
38
39
40 return 0;
41 }
效果图
打印杨辉三角
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //打印杨辉三角
7 int n;
8 printf("请输入要打印杨辉三角的行数");
9 scanf("%d",&n);
10 int arr[n][n];
11 for(int i=0;i<n;i++)
12 {
13 for(int j=0;j<=i;j++)
14 {
15 if(j==0 || j==i)
16 {
17 arr[i][j]=1;
18 }
19 else
20 {
21 arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
22 }
23 printf("%-4d",arr[i][j]);
24 }
25 printf("\n");
26
27 }
28 return 0;
29 }
效果图
二维数组的转置
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 int main(int argc, const char *argv[])
5 {
6 //二维数组的转置
7 int l,r;
8 printf("请输入行数");
9 scanf("%d",&l);
10 printf("请输入列数");
11 scanf("%d",&r);
12 int a[l][r];
13 int b[r][l];
14 for(int i=0;i<l;i++)
15 {
16 for(int j=0;j<r;j++)
17 {
18 printf("请输入arr[%d][%d]=",i,j);
19 scanf("%d",&a[i][j]);
20 }
21 }
22 for(int i=0;i<l;i++)
23 {
24 for(int j=0;j<r;j++)
25 {
26 printf("%d ",a[i][j]);
27 }
28 printf("\n");
29 }
30 for(int i=0;i<l;i++)
31 {
32 for(int j=0;j<r;j++)
33 {
34 b[j][i]=a[i][j];
35 }
36 }
37 for(int i=0;i<r;i++)
38 {
39 for(int j=0;j<l;j++)
40 {
41 printf("%d ",b[i][j]);
42 }
43 printf("\n");
44 }
45
46 return 0;
47 }