牛客网基础语法111~120题😘😘😘
💫前言:今天是咱们第十一期刷牛客网上的题目。
💫目标:能使用数组来解决问题。
💫鸡汤:一张纸对折就能站立。先干为敬,大家随意。
🚩第一题
💦后面的几道题都类似,只要大家掌握好打印星号的方法就行
#include <stdio.h> int main() { //初始化 int input = 0; int i = 0; int j = 0; int k = 0; while ((scanf("%d", &input)) != EOF) { for (i = 0; i < input; i++) { for (j = 0; j < input; j++) { //判断 if (i == 0 || i == input - 1 || j == 0 || j == input - 1) { printf("* "); } else { printf(" "); } } printf("\n"); } } return 0; }
🚩第二题
#include <stdio.h> int main() { int n = 0; //多组输入 while ((scanf(" %d", &n)) != EOF) { //控制行 for (int i = 0; i < n; i++) { //控制列 for (int j = 0; j < n; j++) { //控制打印 if (i == n - 1 || j == 0 || i == j) { printf("* "); } else { printf(" "); } } printf("\n"); } } return 0; }
🚩第三题
💦这里和杨辉三角的打印很相似,写完这到题目可以去写写杨辉三角。
#include <stdio.h> int main() { int n = 0; //多组输入 while ((scanf("%d", &n)) != EOF) { //控制行数 for (int i = 1; i <= n; i++) { //打印一行 for (int j = 1; j <= i; j++) { printf("%d ", j); } printf("\n"); } } return 0; }
🚩第四题
#include<stdio.h> int main() { //初始化 int a, i, j; //输入 scanf("%d", &a); //d为开始的前面的空格数 int d = 3 * a; for (i = 0; i < a; i++) { for (j = d - 1; j > 0; j--) printf(" "); for (j = 0; j < i + 1; j++) printf("* ");//5个空格 printf("\n"); //打印第一行 for (j = d - 2; j > 0; j--) printf(" "); for (j = 0; j < i + 1; j++) printf("* * "); //* *和三个空格组成控制 printf("\n"); //打印第二行 for (j = d - 3; j > 0; j--) printf(" "); for (j = 0; j < i + 1; j++) printf("* * * "); printf("\n"); //打印第三行 d -= 3; } for (i = 0; i < a; i++) { for (j = 0; j < 3 * a - 1; j++) printf(" "); printf("*\n"); } return 0; }
🚩第五题
💦这道题真的恶心人,希望大家能耐心敲完这道题。
#include<stdio.h> #include<math.h> int main() { char arr[800][800] = { 0 }; int n = 0; scanf("%d", &n); int y = 3*pow(2,n-1)-1;//y表示顶点在第一行的下标值 arr[0][y] = '*'; arr[1][y-1] = '*'; arr[1][y+1] = '*'; arr[2][y-2] = '*'; arr[2][y+2] = '*'; arr[2][y] = '*'; //第一次循环,将[最上面的最小的三角形]赋值到对应其[左下的三角形]位置和[右下的三角形]位置 //如果有第二次循环,则将由[三个小三角形构成的三角形]赋值到左下和右下。 for (int i = 1; i < n; i++)//n表示复制n-1次 { int rang = (3 * pow(2, i - 1) - 1); for (int x1 = 0; x1 <= rang; x1++) { for (int y1 = y - rang; y1 <= y + rang; y1++) { arr[x1 + rang + 1][y1 - rang - 1] = arr[x1][y1]; } } for (int x1 = 0; x1 <= rang; x1++) { for (int y1 = y - rang; y1 <= y + rang; y1++) { arr[x1 + rang + 1][y1 + rang + 1] = arr[x1][y1]; } } } //打印树叶 for (int i = 0; i <= 3 * pow(2, n-1)-1; i++) { for (int j = 0; j <= 3 * pow(2, n) - 2; j++) { if (arr[i][j] == '*') printf("%c", arr[i][j]); else printf(" "); } printf("\n"); } //打印树干 for (int i = 0; i < n; i++) { for (int j = 0; j < y; j++) printf(" "); printf("*\n"); } return 0; }
🚩第六题
#include <stdio.h> int main() { //初始化 int n = 0; int x = 0; //输入 scanf("%d %d",&n,&x); int i = 0; int count = 0; //循环 for(i = 1;i <= n;i++) { //这里防止i改变 int m = i; while(m) { if(m % 10 == x) { count++; } m /= 10; } } //输出 printf("%d\n",count); return 0; }
🚩第七题
💦当然这里可以采用逆序法,这里用了一些技巧。
#include <stdio.h> int main() { //定义数组 int arr[10] = {0}; //输入 for(int i = 0;i <= 9;i++) { scanf("%d",&arr[i]); } //逆序 for(int i = 9;i >= 0;i--) { printf("%d ",arr[i]); } return 0; }
🚩第八题
#include <stdio.h> int main() { //初始化 int N = 0; int num = 0; int sum = 0; //输入 scanf("%d",&N); for(int i = 0;i < N;i++) { scanf("%d",&num); //统计 sum = sum + num; } printf("%d\n",sum); return 0; }
🚩第九题
#include <stdio.h> int main() { //初始化 int arr[101] = {0}; int n = 0; //输入 scanf("%d",&n); for(int i = 0;i < n;i++) { scanf("%d",&arr[i]); } //定义最大值,最小值 int max = arr[0]; int min = arr[0]; for(int i = 0;i < n;i++) { if(arr[i] > max) max = arr[i]; if(arr[i] < min) min = arr[i]; } int sum = max - min; printf("%d\n",sum); return 0; }
🚩第十题
#include<stdio.h> int main() { int arr[40] = { 0 }; int num = 0; scanf("%d", &num);//输入几名 for (int k = 0; k <= num; k++) { //输入成绩 scanf("%d", &arr[k]); } int temp = 0; for (int i = 0; i < num; i++) { //第i位为最大数 for (int j =i+1; j<num; j++) { //从第i+1位开始遍历剩余数 if (arr[j] > arr[i]) { //存在大于最大数的数 temp = arr[i];//把最大数和比较数进行交换 arr[i] = arr[j]; arr[j] = temp; } } } for (int k = 0; k < 5; k++) printf("%d ", arr[k]); return 0; }
🎉结束语
今天的刷题内容就到这里啦,如果上面的题目你有更优的解法,请打在下面的评论区中,独乐乐不如众乐乐。麻烦大家举起自己的小手,给博主三连,有你们的支持就是我最大的动力。预知后事如何,且听下回分解。