牛客网C语言语法篇练习之习题集(4)
目录
1.箭形图案(控住输出这个图案)
2.反斜线形图案(简单的输出一个斜线)
3.班级成绩输入输出(成绩输入,然后再输出成绩和成绩的和,两种方法来做一下)
4.矩阵元素定位(二维数组里面找数字)
5. 有序序列判断(数组排序)
6.有序序列插入一个整数(插入第三者)
7.序列中删除指定数字(删除第三者)
8. 序列中整数去重(找出真假,留真,去假)
9.筛选法求素数(就是加强版的找素数)
10. 最高身高(二维数组里面找最大的数)
时隔一周时间,我又开始刷题了(没错,我其实是偷懒了一周时间),现在牛客网语法篇大概还有70道题,这块刷完后,就去力扣上用Java再刷一些题
我认为刷题这件事,是学习途中很有必要的一件事,也值得坚持下去,
既提升自己的算法水平,更提高自己写代码的能力。
所以看到这里的小伙伴,如果你还没有开始刷题,请赶快开始刷题吧,
如果你已经开始刷题了,请继续坚持下去。
下面开始正文
1.箭形图案(控住输出这个图案)
链接 箭形图案_牛客题霸_牛客网 (nowcoder.com)
分析一下吧
上代码,自己看一下,和你想的一样不
#includeint main(){ int n = 0; while(~scanf("%d",&n)) { int i=0,j=0; //上半部分 for(i=0;i<=n;i++) { for(j=0;j<n-i;j++) { printf(" "); } for(j=0;j<=i;j++) { printf("*"); } printf("\n"); } //下半部分for(i=0;i<n;i++){ for(j=0;j<=i;j++) { printf(" "); } for(j=0;j<n-i;j++) { printf("*"); } printf("\n");} } return 0;}
2.反斜线形图案(简单的输出一个斜线)
链接 反斜线形图案_牛客题霸_牛客网 (nowcoder.com)
这道题不难,但我把这道题放在这里的原因是,
我写的虽然是正确的跑过去了,但在我看了别人的代码后,发现我写的代码有点长,
所以是想提醒大家,有时候做完题后可以看看别人代码,找找差距。
好了简单的看一下解析和代码吧
#includeint main(){ int n = 0; while (~scanf("%d", &n)) { int i = 0, j = 0; for (i = 1; i <= n; i++) { for (j = 1; j <= i; j++) { if (j != 1) {printf(" "); } if (i == j) { printf("*\n"); } } } } return 0;}
3.班级成绩输入输出(成绩输入,然后再输出成绩和成绩的和,两种方法来做一下)
链接 班级成绩输入输出_牛客题霸_牛客网 (nowcoder.com)
下面先看第一个方法
4.矩阵元素定位(二维数组里面找数字)
链接 矩阵元素定位_牛客题霸_牛客网 (nowcoder.com)
#includeint main(){ int n,m,x,y; int arr[15][15]={0}; scanf("%d %d\n",&n,&m); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { scanf("%d ",&arr[i][j]); } } scanf("%d %d",&x,&y); printf("%d",arr[x-1][y-1]); return 0;}
5. 有序序列判断(数组排序)
链接 有序序列判断_牛客题霸_牛客网 (nowcoder.com)
分析一下
#includeint main(){ int n = 0,flag1=0,flag2=0; scanf("%d",&n); int a[50]={0}; for(int i=0;i0) { if(a[i-1]>a[i]){ flag1 = 1; }else if(a[i-1]<a[i]){ flag2 = 1; } } } if(flag1&&flag2){ printf("unsorted\n"); }else{ printf("sorted\n"); } return 0;}
6.有序序列插入一个整数(插入第三者)
链接 有序序列插入一个整数_牛客题霸_牛客网 (nowcoder.com)
#includeint main(){ int n,i,a,j; int arr[50] = { 0 }; scanf("%d", &n); for (i = 1; i <= n; i++) { scanf("%d", &arr[i]); } scanf("%d", &a); for (i = 1; i <= n + 1; i++) { if (a < arr[i]||i==n+1) { for (j = 0; j < i; j++) { arr[j] = arr[j + 1]; } arr[i-1] = a; break; } } for (i = 0; i <= n; i++) { printf("%d ", arr[i]); } return 0;}
7.序列中删除指定数字(删除第三者)
链接 序列中删除指定数字_牛客题霸_牛客网 (nowcoder.com)
简单分析一下
看代码,和你想的一样不,哪里有区别
#includeint main(){ int n,i,a,j; int arr[50] = { 0 }; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } scanf("%d", &a); for (i = 0; i < n; i++) { if (arr[i] != a) { printf("%d ",arr[i]); }else{ arr[i]=arr[i+1]; } } return 0;}
8. 序列中整数去重(找出真假,留真,去假)
链接 序列中整数去重_牛客题霸_牛客网 (nowcoder.com)
分析一下
上代码
#includeint main(){ int n =0,i=0,j=0; //输出 scanf("%d",&n); int arr[5000]={0}; for(i=0;i<n;i++) { scanf("%d ",&arr[i]); } //去重 for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(arr[i]==arr[j]) {//删除 for(int k=j;k<n-1;k++) { arr[k]=arr[k+1]; } n--; j--; } } } //输出 for(i=0;i<n;i++) { printf("%d ",arr[i]); } return 0;}
9.筛选法求素数(就是加强版的找素数)
链接 筛选法求素数_牛客题霸_牛客网 (nowcoder.com)
分析一下
上代码
#includeint main(){ int n = 0; int arr[100] = {0}; //输入 while(scanf("%d",&n) != EOF) { int i = 0,j = 0; for(i = 2 ; i <= n ; i++){ arr[i]=i; } //筛选 for(i=2 ; i<=n ; i++){ for(j=2 ; j<i ; j++){ if(i%j == 0){ arr[i]=0; } } } int ret =0; //输出 for(i=2;i<=n;i++){ if(arr[i] != 0){ printf("%d ",arr[i]); }else{ ret++; } } printf("\n%d",ret); } return 0;}
10. 最高身高(二维数组里面找最大的数)
链接 最高身高_牛客题霸_牛客网 (nowcoder.com)
分析一下
上代码
#includeint main(){ int n = 0,m = 0; scanf("%d %d",&n,&m); int arr[10][10]={0}; int x=0,y=0,max=0; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { scanf("%d ",&arr[i][j]); if(max<arr[i][j]) { x=i+1; y=j+1; max = arr[i][j]; } } } printf("%d %d\n",x,y); return 0;}