文章目录
- 1.k形图案
- 2.箭形图案
- 3.反斜线型图案
- 4.正斜线形图案
- 5.X形图案
- 6.空心正方形图案
- 7.空心三角形图案
- 8.平均身高
- 9.挂科危险
- 10.HTTP状态码
- 11.数字三角形
- 11.公务员面试
- 12.有序序列插入一个数
- 13.筛选法求素数
- 14.图像相似度
- 15.登陆验证
- 16.包含数字9的数
- 17.奇偶统计
- 18.统计成绩
- 19.统计成绩
- 20.密码验证
- 20.矩阵计算
- 21.成绩输入输出问题
- 22.逆序输出
- 23.统计数据正负数
- 24.N个数之和
- 25.最高分与最低分之差
- 26.有序序列判断
- 27.有序序列插入一个整数
- 28.序列中删除指定数字
- 29.序列中整数去重
- 30.有序序列合并
- 31.班级成绩输入输出
- 32.矩阵元素定位
- 33.序列重组矩阵
- 34.最高身高
- 35.最高身高
- 36.矩阵相等判定
- 37.上三角矩阵判定
- 38.矩阵转置
- 39.矩阵交换
- 40.杨辉三角
- 41.井字棋
- 42.小乐乐与进制转换
- 43.小乐乐求和
- 44.小乐乐定闹钟
- 45.小乐乐排电梯
- 46.小乐乐与欧几里得
- 47.小乐乐走台阶
1.k形图案
#include<stdio.h>
int main()
{
int k;
while(scanf("%d",&k)!=EOF)
{
// //先打印上半部分
for (int i = 0; i <=k;i++)//上半部分排
{
for (int j = 0; j <=k - i;j++)
{
printf("* ");
}
printf("\n");//打印完后换行
}
// // 为下半部分打印
for (int i = 0; i <k;i++)
{
for (int j = 0; j <=i+1;j++)//每行多打印一列
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
2.箭形图案
#include<stdio.h>
int main()
{
int arrow;
while(scanf("%d",&arrow)!=EOF)
{
//先打印空格, 上半行
for (int i = 0; i <= arrow;i++)
{
for (int j = 0; j < arrow - i;j++)
{
printf(" ");
}
for (int j = 0; j <= i;j++)
{
printf("*");
}
printf("\n");
}
//打印下半部分
for (int i = 0; i < arrow;i++)
{
for (int j = 0; j <= i;j++)
{
printf(" ");
}
for (int j = 0; j < arrow - i;j++)
{
printf("*");
}
printf("\n");
}
}
return 0;
}
3.反斜线型图案
#include<stdio.h>
int main()
{
int thread;
while(scanf("%d",&thread)!=EOF)
{
for (int i = 0; i<thread;i++)
{
for (int j = 0; j <i;j++)
{
printf(" ");
}
printf("*\n");
}
}
return 0;
}
4.正斜线形图案
#include<stdio.h>
int main()
{
int thread;
while(scanf("%d",&thread)!=EOF)
{
for (int i = 0; i < thread;i++)
{
for (int j = 1; j <thread-i;j++)
{
printf(" ");
}
printf("*\n");
}
}
return 0;
}
5.X形图案
#include<stdio.h>
int main()
{
int x;
while(scanf("%d",&x)!=EOF)
{
for (int i = 0; i < x;i++)//打印行不变
{
for (int j = 0; j < x;j++)//打印列
{
if(i==j)//打印左斜线
{
printf("*");
}
else if(j==x-i-1)//打印右斜线
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
6.空心正方形图案
#include<stdio.h>
int main()
{
int square;
while(scanf("%d",&square)!=EOF)
{
for (int i = 0; i < square;i++)//行
{
for (int j = 0; j < square;j++)//列
{
if(i == 0 || i == square - 1 || j == 0 || j == square -1)
//第一行和最后一行,第一列最后一列条件
printf("* ");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
7.空心三角形图案
#include<stdio.h>
int main()
{
int triangle;
while(scanf("%d",&triangle)!=EOF)
{
for (int i = 0; i < triangle;i++)
{
for (int j = 0; j < triangle; j++)
{
if (i == triangle- 1||i == j||j==0)
//条件1为第最后一行-1,条件二为右侧*输出,条件3为第一列输出
printf("* ");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
8.平均身高
#include<stdio.h>
int main()
{
float p[5] = {0};
float sum = 0;
for (int i = 0; i <5;i++)
{
scanf("%f",&p[i]);
}
for (int i = 0; i <5; i++)
{
sum += p[i];
}
printf("%.2f", sum/5);
return 0;
}
//2.
#include <stdio.h>
int main() {
float a,b,c,d,e;
scanf("%f %f %f %f %f",&a,&b,&c,&d,&e);
float average =(a+b+c+d+e)/5;
printf("%.2f",average);
return 0;
}
9.挂科危险
#include<stdio.h>
int main()
{
int credit;
while(~scanf("%d",&credit))
{
if(credit>=10)
printf("Danger++\n");
else if(credit>=4&&credit<=9)
printf("Danger\n");
else
printf("Good\n");
}
return 0;
}
10.HTTP状态码
#include<stdio.h>
int main()
{
int id;
while(~scanf("%d",&id))
{
if(id==200)
printf("OK\n");
else if(id==202)
printf("Accepted\n");
else if(id==400)
printf("Bad Request\n");
else if(id==403)
printf("Forbidden\n");
else if(id==404)
printf("Not Found\n");
else if(id==500)
printf("Internal Server Error\n");
else if(id==502)
printf("Bad Gateway\n");
else
printf("0\n");
}
return 0;
}
11.数字三角形
#include<stdio.h>
int main()
{
int figure;
while(~scanf("%d",&figure))
{
for(int i=1;i<=figure;i++)
{
for(int j=1;j<=i;j++)
{
printf("%d ",j);
}
printf("\n");
}
}
return 0;
}
11.公务员面试
#include<stdio.h>
int main()
{
int judge[7]={0};
int swap =0;
while(~scanf("%d %d %d %d %d %d %d",&judge[0],&judge[1],&judge[2],&judge[3],&judge[4],&judge[5],&judge[6]))//多组输入
{
for(int i=0;i<7;i++)
{
for(int j=i+1;j<7;j++)
if(judge[i]<judge[j])//将所有的值由大到小排列
{
swap=judge[i];
judge[i]=judge[j];
judge[j]=swap;
}
}
float average = 0;
for (int i = 1; i < 6; i++)
{
average += judge[i];
}
printf("%.2f ", average/5);
}
return 0;
}
12.有序序列插入一个数
#include<stdio.h>
int main()
{
int arr[50] = {0};
int n; // 为输入的个数
scanf("%d", &n); // 输入你打算输入的个数
int i = 0; //输入n个数字
for (int i = 0; i < n; i++)
{
scanf("%d",&arr[i]);
}
int insert;
scanf("%d", &insert);//插入的元素
for (i =n-1; i>=0;i--) // 比较插入元素和数组元素的大小
{
if(arr[i]>insert)
{
arr[i + 1] = arr[i];
}
else{
arr[i + 1] = insert;
break;
}
}
if(i<0)
{
arr[0] = insert;
}
for ( i = 0; i < n + 1; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
13.筛选法求素数
#include<stdio.h>
int main()
{
char arr[100] = {0};//应题目要求
int n;
while(~scanf("%d",&n))//输入
{
for (int i = 2; i <=n;i++)//将2-n的数存入数组
{
arr[i] = i;//下标为0的数字改为i开始循环
// printf("%d ", arr[i]);
}
//开始排查
for (int i = 2; i <= n;i++)
{
for (int j = 2; j < i;j++)//素数不为1和其本身
if(i%j==0)
arr[i] = 0;
}
int count = 0;//判断i%j为0的个数
for (int i = 2; i <= n;i++)
{
if(arr[i]!=0)
printf("%d ", arr[i]);
else
count++;
}
printf("\n%d", count);
}
return 0;
}
14.图像相似度
#include<stdio.h>
int main()
{
int m,n,i;
char arr1[100]={0};
char arr2[100]={0};
scanf("%d %d",&m,&n);
for(i=0;i<m*n;i++)
{
scanf("%s",&arr1[i]);
}
for(i=0;i<m*n;i++)
{
scanf("%s",&arr2[i]);
}
double count = 0.0;
//我们需要将整数换算为小数,方便我们receive
double rec = 0.0;
for(i=0;i<m*n;i++)
{
if(arr1[i]==arr2[i])
count++;
}
rec=count/(m*n);
printf("%.2f",rec*100);
return 0;
}
15.登陆验证
#include<stdio.h>
#include<string.h>
int main()
{
char user[20] = {0};
char passward[20] = {0};
while(scanf("%s %s", user, passward)!=EOF)
{
if(strcmp(user,"admin")==0 && strcmp(passward,"admin")==0)
//函数库为string.h
printf("Login Success!\n");
else
printf("Login Fail!\n");
}
return 0;
}
16.包含数字9的数
#include<stdio.h>
int main()
{
int count = 0;//1-2019中9的数量
for (int i = 1; i <= 2019; i++)
{
int y = i;//将i循环后得到的数放入y
while(y>=9)//从9开始
{
if(y%10==9)//取模
{
count++;//找到9++;跳出循环
break;
}
else
{
y = y/10;
}
}
}
printf("%d",count);
return 0;
}
17.奇偶统计
#include<stdio.h>
int main()
{
unsigned int n;//为正整数
int count1 = 0;
int count2 = 0; // 偶数,奇数
scanf("%d", &n);
for (int i = 1; i <= n;i++)
{
if (i % 2 == 0)
count1++;
else
count2++;
}
printf("%d %d", count2, count1);
return 0;
}
18.统计成绩
#include<stdio.h>
int main()
{
double n, score, max = 0, min = 100, sum;
scanf("%lf", &n); // 输入科目数量
for (int i = 1; i <= n;i++)
{
scanf("%lf", &score);//各科成绩
if(score>max)
max = score;//将最最大值带入max
if(score<min)
min = score;//将最小值带入
sum += score;
}
printf("%.2f %.2f %.2f", max, min, sum / n);
return 0;
}
19.统计成绩
#include<stdio.h>
int main()
{
int a;
int arr[50];//数组中最大范围
scanf("%d", &a);//输入的元素的个数
for (int i = 1; i <=a;i++)//从下标1开始
{
scanf("%d", &arr[i]);//输入数量
}
int b = 0;
scanf("%d", &b);
arr[0] = b;//下标0改为b后左比较
for(int i=0;i<=a;i++)
{
if(arr[i+1] < arr[i])//从下标0和下标1开始比较
{
int swap = arr[i];//
arr[i] = arr[i+1];
arr[i+1] = swap;
}
else {
break;
}
}
for(int i=0;i<=a;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
20.密码验证
#include<stdio.h>
#include <string.h>
int main()
{
char user[10]={0};
char p[10]={0};
scanf("%s %s",user,p);
if(strcmp(user,p)==0)
{
printf("same\n");
}
else {
printf("different\n");
}
return 0;
}
20.矩阵计算
#include<stdio.h>
int main()
{
int n,m=0;
int sum=0;//给总和定义为0
int arr[10][10]={0};//需要的条件
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&arr[i][j]);
if(arr[i][j]>0)
{
sum += arr[i][j];
}
}
}
printf("%d", sum);
return 0;
}
21.成绩输入输出问题
#include<stdio.h>
int main()
{
int arr[10]={0};
for (int i = 0; i < 10;i++)
{
scanf("%d",&arr[i]);
}
for (int i = 0; i < 10;i++)
{
printf("%d ", arr[i]);
}
return 0;
}
22.逆序输出
#include<stdio.h>
int main()
{
int arr[10] = {0};
for (int i = 10-1; i>=0;i--)
//从倒数第一个数组开始0-9为我们需要存放的数
{
scanf("%d", &arr[i]);
}
for (int i = 0; i < 10;i++)
{
printf("%d ", arr[i]);
}
return 0;
}
23.统计数据正负数
#include<stdio.h>
int main()
{
int arr[10] = {0};
int a=0, b = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < sz;i++)
{
scanf("%d", &arr[i]);
if(arr[i]>0)
a++;
else if(arr[i]<0)
b++;
}
printf("positive:%d\n", a);
printf("negative:%d\n", b);
return 0;
}
24.N个数之和
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
int arr[50] = {0};
int sum = 0;
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
sum += arr[i];
}
printf("%d", sum);
return 0;
}
25.最高分与最低分之差
#include<stdio.h>
int main()
{
int n=0;//n科成绩
int arr[9999]={0};
scanf("%d", &n);
int max = 0, min = 100;
for (int i = 0; i < n; i++)
{
scanf("%d",&arr[i]);
if(max<arr[i])
max = arr[i];
if(min>arr[i])
min = arr[i];
}
int value = 0;
value = max - min;
printf("%d", value);
return 0;
}
26.有序序列判断
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[100] = {0};
int count1 = 0,count2 = 0;
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
if(i>=1)//第二个值进行判断
{
if(arr[i]>arr[i-1])
count1=1;//序列
else
count2=1;//不是序列
}
}
if(count1==1&&count2==1)
printf("unsorted\n");//两个条件都走为非有序数
else
printf("sorted\n");
return 0;
}
27.有序序列插入一个整数
#include<stdio.h>
int main()
{
unsigned int n = 0;
scanf("%d", &n);
int arr[100] = {0};
int insert = 0;
for (int i = 1; i <=n; i++)//下标改为1
{
scanf("%d", &arr[i]);
}
scanf("%d", &insert);
arr[0] = insert;//将arr0的下标元素改为insert
for (int i = 0; i < n;i++)
{
if(arr[i]>arr[i+1])
{
int tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
for (int i = 0; i <=n;i++)
{
printf("%d ", arr[i]);
}
return 0;
}
28.序列中删除指定数字
#include<stdio.h>
int main()
{
unsigned int n = 0;//输入数组中元素的个数
scanf("%d", &n);
int arr[100] = {0};//数组
for (int i = 0; i < n;i++)
{
scanf("%d",&arr[i]);
}
unsigned int re = 0;//想要删除的元素
scanf("%d", &re);
for (int i = 0; i < n;i++)
{
if(arr[i]!=re)
printf("%d ", arr[i]);
}
return 0;
}
29.序列中整数去重
#include<stdio.h>
int main()
{
unsigned int n = 0;
scanf("%d", &n);
int arr[100] = {0};
for (int i = 0; i < n;i++)
{
scanf("%d",&arr[i]);
}
for (int i = 0; i < n;i++)
{
for (int j = i + 1; j < n;j++)
{
if(arr[i]==arr[j])
arr[j] = 0;//第一个相同元素不需要更改,更改第二个元素
}
if(arr[i]!=0)
printf("%d ", arr[i]);
}
return 0;
}
30.有序序列合并
#include<stdio.h>
int main()
{
int m = 0, n = 0;
int arr[30000] = {0};
scanf("%d %d", &m, &n);//输入个数
for (int i = 0; i < m+n;i++)
{
scanf("%d",&arr[i]);//输入生序序列个数arr
}
for (int i = 0; i < m + n;i++)
{
for (int j = i + 1; j < m + n; j++)
{
if(arr[i]>arr[j])
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
for (int i = 0; i < m+n;i++)
{
printf("%d ",arr[i]);//输入生序序列个数arr
}
return 0;
}
31.班级成绩输入输出
#include<stdio.h>
int main()
{
float score=0.0;
for(int i=1;i<=5;i++)//五个学生
{
float sum=0.0;
for(int j=1;j<=5;j++)//每个学生五科成绩
{
scanf("%f",&score);
sum+=score;
printf("%.1f ",score);
}
printf("%.1f\n",sum);//sum打印完继续循环,sum又赋值为0
}
return 0;
}
32.矩阵元素定位
#include<stdio.h>
int main()
{
int n=0;int m=0;
int arr[5][5]={0};
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&arr[i][j]);
}
}
int x=0,y=0;
scanf("%d %d",&x,&y);
printf("%d\n",arr[x-1][y-1]);
return 0;
}
33.序列重组矩阵
#include<stdio.h>
int main()
{
int n, m;
int arr[10][10]= {0};
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m;j++)
{
scanf("%d",&arr[i][j]);
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
34.最高身高
#include<stdio.h>
int main()
{
int n,m;
int arr[10][10]={0};
int max=0;
int x=0,y=0;
scanf("%d %d",&n,&m);
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;
}
35.最高身高
#include<stdio.h>
int main()
{
int n,m;
int arr[10][10]={0};
int max=0;
int x=0,y=0;
scanf("%d %d",&n,&m);
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;
}
36.矩阵相等判定
#include<stdio.h>
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int arr1[10][10]={0};
int arr2[10][10]={0};
int judge=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&arr1[i][j]);
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&arr2[i][j]);
if(arr1[i][j]==arr2[i][j])
{
judge++;
}
}
}
if(judge==m*n)//判断相同的是否为输入的个数
printf("Yes\n");
else
printf("No\n");
return 0;
}
37.上三角矩阵判定
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int arr[10][10]={0};
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i>j)//上三角矩阵条件,左下角为0
{
if(arr[i][j]!=0)
{
printf("NO\n");
return 0;
}
}
}
}
}
printf("YES\n");
return 0;
}
38.矩阵转置
#include<stdio.h>
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int arr[10][10]={0};
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",arr[j][i]);
}
printf("\n");
}
return 0;
}
39.矩阵交换
#include<stdio.h>
int main()
{
int n,m;//行列个数
int arr[10][10];
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&arr[i][j]);//输入行列信息
}
}
int k;
scanf("%d",&k);//k行执行次数
char ch;
int a,b;
for(int i = 0;i<k;i++)//一共k行
{
getchar();
scanf("%c %d %d",&ch,&a,&b);
if (ch == 'r')
{
//交换a和b行
for (int j = 0; j < m; j++)
{
int tmp = arr[a - 1][j];
arr[a - 1][j] = arr[b - 1][j];
arr[b - 1][j] = tmp;
}
}
else if (ch == 'c')
{
//交换a和b列
for (int i = 0; i< n; i++)
{
int tmp = arr[i][a - 1];
arr[i][a - 1] = arr[i][b - 1];
arr[i][b - 1] = tmp;
}
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
40.杨辉三角
#include<stdio.h>
int main()
{
#include<stdio.h>
int main()
{
unsigned int n=0;
int arr[30][30]={0};
scanf("%d",&n);
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
if(0==j||i==j)
{
arr[i][j]=1;//行列为1
}
else
{
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];//为上一行的左边数假右边数的和
}
printf("%5d",arr[i][j]);
}
printf("\n");
}
return 0;
}
41.井字棋
#include<stdio.h>
int main()
{
char board[3][3];
char flag;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
scanf(" %c",&board[i][j]);
}
}
for(int i=0;i<3;i++)
{
//行
if(board[i][0]==board[i][1]&&board[i][1]==board[i][2]&&board[i][2]!=' ')
{
flag=board[i][1];
break;
}
}
for(int j=0;j<3;j++)
{
//列
if(board[0][j]==board[1][j]&&board[1][j]==board[2][j]&&board[2][j]!=' ')
{
flag=board[1][j];
break;
}
}
//两个对角线
if(board[0][0]==board[1][1]&&board[1][1]==board[2][2]&&board[2][2]!=' ')
flag=board[1][1];
if(board[0][2]==board[1][1]&&board[1][1]==board[2][0]&&board[2][0]!=' ')
flag=board[1][1];
if('K'==flag)
printf("KiKi wins!\n");
else if('B'==flag)
printf("BoBo wins!\n");
else
printf("No winner!\n");
return 0;
}
}
42.小乐乐与进制转换
#include<stdio.h>
void func(int n)
{
int a;
if(n==0);//递归停止条件
else
{
a=n%6;//取模最大数余数
func(n/6);//递归
printf("%d",a);
}
}
int main()
{
int n;
scanf("%d",&n);
func(n);
}
43.小乐乐求和
#include<stdio.h>
int main()
{
long int sum=0;
int a;
scanf("%d",&a);
for(int i=1;i<=a;i++)
{
sum+=i;
}
printf("%ld",sum);
return 0;
}
44.小乐乐定闹钟
#include<stdio.h>
int main()
{
int hour=0,min=0;
int k=0;
scanf("%d:%d %d",&hour,&min,&k);
hour=(hour+(min+k)/60)%24;//小时,不考虑日期
min=(min+k)%60;//分钟
printf("%.2d:%.2d\n",hour,min);
return 0;
}
45.小乐乐排电梯
#include<stdio.h>
int main()
{
int n;
int m=0;
scanf("%d",&n);
if(n>=0&&n<=12)
{
m=2;
}
else
{
m=n/12*4+2;//n为排队人数/电梯容纳人数*上下时间+小乐乐上去的时间
}
printf("%d",m);
return 0;
}
46.小乐乐与欧几里得
#include<stdio.h>
int main()
{
long long n,m;
scanf("%lld %lld",&n,&m);
long long i=n,j=m;
while(m)//最大公约数
{
long int tmp=n%m;
n=m;
m=tmp;
}
long rec = (i*j)/n;//最小公倍数
printf("%lld",rec+n);
return 0;
}
47.小乐乐走台阶
#include<stdio.h>
int fib(int n)
{
if(n<=2)
{
return n;
}
else {
return fib(n-1)+fib(n-2);
}
}
int main()
{
int n;
scanf("%d",&n);
int ret = fib(n);
printf("%d\n",ret);
return 0;
}
谢谢(#.#)大家观看!!!大家加油!!