(本篇是基于嵌入式基础学习1中笔记进行的实战练习,代码存在疑问,还望大家多多指正)
作业1:
1、把456转换成8进制
456是十进制:
十进制转换为8进制,需先转换成2进制
456转2进制:456=256+125+64+8=2^8+2^7+2^6+2^3
=111001000
转换为8进制:111=7 001=1 000=0 (三者为一组)
结果为0710
2、把0456转换成16进制
0456为8进制,则要转换为16进制,需先转换为2进制
0456转2进制:(因2进制转换为8进制为三个为一组)
0456=100 101110
转换为16进制:(从右到左,四个为一组)
结果0x12e
3、把0x456转换成8进制
0X456为十六进制,则要转换为8进制,需要先转换为2进制
0X456转换为2进制:0100 0101 0110
2进制转换为8进制:(三个为一组)
结果为:0212
4、char a = 456,输出结果是printf("%d",a)?
//注意关键字:char 字符型 有1个字节,占8位,
456为十进制,转换为二进制:456=256+125+64+8=2^8+2^7+2^6+2^3
=111001000(这是补码)
补码-1=反码: 111000111
反码取反=原码: 100111000 //第一位1位符号位,不进行改变
转换为十进制:=-56
作业2:
1、int a = 1, b = 2, c = 0, d;d = a++ || c++ && ++b;a、b、c、d分别是?
a=2 ;b=2; c=0 ;d=1
2、char a = -1, c; c = a >> 1;printf("%d %d\n", a, c);输出结果是?
//数据在类型中进行存储时,一定要按二进制形式进行存储,负数是按照补码进行存储的
-1: 10000001(补码)
11111110(反码)
11111111(原码=反码+1)
右移: 11(这里缺位,看前面符号位,如果为-1,即补1,如果为0,即为0)111111
a=-1;c=-1
3、int a = 0x20a1;将a的第4到7位清0,写出表达式
a=a& (~(0xf<<4));
a& (~(00000000000000000000000011110000 ))
a& (11111111111111111111111100001111)
4、short a = 32767; a++; printf("%d\n", a);输出结果是?
-32768
//2^15 - 1,有符号short类型最大的正数,最大正数加1,符号位变为1,其他变为0=最小负数再减一:-32767-1=-32768
5、编写程序实现如下功能:pleaes input Y|N:输入'Y'打印字符"OK",输入'N'打印字符"NO".
char a;
printf("please input Y|N:\n");
a=getchar();
if(a=='Y')
puts("ok");
if(a=='N')
puts("NO");
6.有如下程序
int main()
{
char a = 1;
while(a++);
}
该程序是不是死循环?
不是
7.int i = 10;printf("%d %d %d %d\n", i, ++i, i++,++i);输出结果是?
从右向左计算!!!13 13 11 13
作业3:(C基础)
1.编写程序实现输入一个年份,判断是否是闰年.能被4整除,但不能被100整除的年份;能被100整除,又能被400整除的年份;
#include <stdio.h>
int main(int argc, char*argv[])
{
int y;
printf("please input year: ");
scanf("%d", &y);
if(y%4==0&&y%100!=0){
puts("闰年");
}elseif(y%100==0&&y%400==0){
puts("闰年");
}else{
puts("不是闰年");
}
return 0;
}
2、打印100以内的偶数.
#include <stdio.h>
int main(int argc, char*argv[])
{
for(inti=0; i<=100; i++){
if(i%2==0)
printf("%d ", i);
}
puts("");
return 0;
}
3、打印所有的水仙花数。
一个三位数,它的个位十位百位的立方和等于它本身
#include <stdio.h>
int main(int argc, char*argv[])
{
int a, b, c;
for(int i=100; i<1000; i++){
a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c){
printf("%d ", i);
}
}
puts("");
int i=100;
while(i<1000){
a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c){
printf("%d ", i);
}
i++;
}
puts("");
return 0;
}
4、打印99乘法表。
#include <stdio.h>
int main(int argc, char*argv[])
{
for(int i=1; i<10; i++){
for(int j=1; j<=i; j++){
printf("%d * %d = %-3d", i, j, i*j);
}
puts("");
}
return 0;
}
5、打印如下图形
*
***
*****
********
**********
#include <stdio.h>
int main(int argc, char*argv[])
{
int N, i, j, z;
printf("please input num: ");
scanf("%d", &N);
for(i=1; i<=N; i++){
for(z=1; z<=N-i; z++)
printf(" ");
for(j=1; j<=2*i-1; j++)
printf("*");
puts("");
}
return 0;
}
6、 打印100以内所有的质数.
#include <stdio.h>
int main(int argc, char*argv[])
{
int j;
for(int i=2; i<1001; i++){
for(j=2; j<i; j++){
if(i%j==0)
break;
}
if(j==i){
printf("%d ", i);
}
}
puts("");
return 0;
}
7、用while循环实现第2、3题
第2题:
#include <stdio.h>
int main(int argc, char*argv[])
{
int a;
while(a<=100){
if(a%2==0);
printf("%-3d",a);
a++;
continue;
}
puts("");
return 0;
}
第3题:
#include <stdio.h>
int main(int argc, char*argv[])
{
int a, b, c;
int i=100;
while(i<1000){
a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c){
printf("%d ", i);
}
i++;
}
puts("");
return 0;
}
8、不使用for和while实现求1-100的累加求和.(goto)
#include <stdio.h>
int main(int argc, char*argv[])
{
int i=1, sum=0;
loop:
sum+=i;
i++;
if(i<=100)
gotoloop;
printf("sum = %d\n", sum);
return 0;
}
9、有如下程序:
int a=0;
for(int n=0; n<4; n+=2){
switch(n){
case0:
a+=3;
case1:
a*=2;
break;
case2:
a-=3; //第二次,当n=2时,上次循环a=6,需带到这一个循环中
case3:
a+=2;
default:
a=0;
}
printf("%d\n", a);
}
输出结果是?
60
作业4:(数组)
1、编写程序计算一个数组中所有元素的和.(遍历数组)
#include <stdio.h>
int main(int argc, char*argv[])
{
int n;
printf("please input num: ");
scanf("%d", &n);
int a[n];
for(int i=0; i<n; i++) //
{
printf("please input arr[%d]: ", i);
scanf("%d", &a[i]);
}
int sum=0; //避免有新元素干扰,进行初始化,如果是乘法,初始化应该为1
for(int i=0; i<n; i++) //遍历数组
{
sum+=a[i]; //元素求和公式
}
printf("%d\n", sum);
return 0;
}
2、编写程序找出数组中最大的元素,并且打印它的下标。
#include <stdio.h>
int main(int argc, char*argv[])
{
//x记录最大元素的下标
int a[5] = {11, -7, 9, 3, 10}, max=a[1], x=1; //如果max初始化为0时,不会引用新的数据,不严谨
for(int i=0; i<5; i++) //
{
if(max<a[i]){
max=a[i];
x=i;
}
}
printf("max:%d pos:%d\n", max, x);
return 0;
}
3、编写程序,从键盘录入字符串,然后字母字符将大写转小写,小写转大写输出,其它字符原样输出.
#include <stdio.h>
int main(int argc, char*argv[])
{
char buf[20] = {0}; //定义一个字符数组
puts("input string:"); //键盘输入
gets(buf);
for(int i=0; buf[i] !='\0'; i++) //数组遍历,buf[i] != '\0' = buf[i] 表示任意地址字符只要不是斜杠0就能执行循环
{
if('A'<=buf[i] &&buf[i] <='Z'){ //进行判断,当在A-Z之间的字符,即转为小写,+32
buf[i] +=32;
}
elseif('a'<=buf[i] &&buf[i] <='z'){ //当在a-z之间的字符时,转为大写,即-32
buf[i] -=32;
}
}
puts(buf);
return 0;
}
4、编写程序实现数组的循环移动,输入一个数m,当m > 0则数组向右循环移动m位,当m < 0则数组向左循环移动m位.
#include <stdio.h>
int main(int argc, char*argv[])
{
int a[5] = {1,2,3,4,5}, m, tmp;
printf("please input move num: ");
scanf("%d", &m);
m%=5; //取余是为了确保当m取值超过时,依旧保持在规定位数以内,确保不会超额
if(m<0){
m*=-1; //m = -m;
while(m--)
{
//向左循环移动1位
tmp=a[0];
for(int i=0; i<4; i++)
a[i] =a[i+1];
a[4] =tmp;
}
}else{
while(m--)
{
//向右循环移动1位
tmp=a[4];
for(int i=4; i>0; i--)
a[i] =a[i-1];
a[0] =tmp;
}
}
for(int i=0; i<5; i++)
{
printf("%d ", a[i]);
}
puts("");
return 0;
}
5、将一个数字字符串转化成十进制整数如:"12345" -> 12345 或 "-123456" -> -123456
#include <stdio.h>
int main(int argc, char*argv[])
{
char buf[30] = {0};
int num=0;
printf("please input num: ");
gets(buf);
if(buf[0] =='-') //
{
for(int i=1; buf[i]; i++)
{
if(buf[i] <'0'||buf[i] >'9')
{
break;
}
num=buf[i]-'0'+num*10;
}
num*=-1;
}
else
{
for(int i=0; buf[i] !='\0'; i++)
{
if(buf[i] <'0'||buf[i] >'9')
break;
num=buf[i]-'0'+num*10;
}
}
printf("%d\n", num);
return 0;
}
6、删除指定字符串中的空格,如"hello world"删除后变为"helloworld"
#include <stdio.h>
int main(int argc, char*argv[])
{
char buf[20] = {0};
puts("input string: ");
gets(buf);
int i=0, j;
while(buf[i]) //while(buf[i]!='\0')
{
if(' '==buf[i]) //删除指定字符,将空格改成字符即可
{
j=i; //记录空格的下标
//依次左移
while(buf[j]) //循环j的位置
{
buf[j] =buf[j+1];
j++;
}
i--; //空格未删完,跳过了当下空格,故i--
}
i++; //不然会在原地走
}
puts(buf);
return 0;
}
作业5:(字符)
1、编写程序实现strlen的功能.
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100]; //定义字符数组
printf("input string: ");
gets(str); //键盘输入
int n=0;
int i=0;
/*
for(i; str[i]; i++)
{
n++;
}
*/
while(str[i]) //str[i] != '\0'
{
i++;
n++;
}
printf("input string len: %d\n", n);
return 0;
}
2、编写程序实现strcat的功能.//拼接
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100], dst[100];
printf("input str sting: ");
gets(str);
printf("input dst sting: ");
gets(dst);
int i=0, j=0;
while(str[i++]);
i--;
/*
while(dst[j])
{
str[i++] = dst[j++]; //str[i] = dst[j]; i++, j++;
}
str[i] = 0;
*/
while(str[i++] =dst[j++]);
puts(str);
return 0;
}
3、编写程序实现strcmp的功能.//比较
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100],dst[100];
printf("input str string: ");
gets(str);
printf("input dst string: ");
gets(dst);
int cmp=0, i;
for(i=0; str[i]; i++)
{
/*
if(0 == str[i]-dst[i])
continue;
else
break;
*/
if(0!=str[i] -dst[i]) //str[i] != dst[i]
break;
}
cmp=str[i] -dst[i];
printf("cmp: %d\n", cmp);
return 0;
}
4、编写程序实现strncat的功能.
scanf用于数值
gets用于字符
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100], dst[100];
printf("input str sting: ");
gets(str);
printf("input dst sting: ");
gets(dst);
int n;
printf("input copy num: ");
scanf("%d", &n);
int i=0, j=0;
while(str[i++]);
i--;
for(j; dst[j] &&j<n; j++,i++)
str[i] =dst[j];
str[i] ='\0';
puts(str);
return 0;
}
5、编写程序实现字符串的循环移位
#include <stdio.h>
#include <string.h>
int main(int argc, char*argv[])
{
char str[100];
puts("input string: ");
gets(str);
int m;
puts("input move num:");
scanf("%d", &m);
int n=strlen(str);
char ch;
while(m--)
{
ch=str[n-1];
for(int i=n-1; i>0; i--)
str[i] =str[i-1];
str[0] =ch;
}
puts(str);
return 0;
}
6、编写程序实现删除字符串中指定的字符.
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100], ch;
printf("input string: ");
gets(str);
printf("input delete char: ");
scanf("%c", &ch);
int i, j;
for(i=0; str[i]; i++)
{
if(ch==str[i])
{
j=i;
while(str[j])
{
str[j] =str[j+1];
j++;
}
i--;
}
}
puts(str);
return 0;
}
7、编写程序实现将整型数据转换成字符串的功能 1234 -> "1234"
num%10+'0' :取个位
num/=10;
for(intj=0;j<i/2;j++)
代码如下:
#include <stdio.h>
int main(int argc, char*argv[])
{
int num, i;
char str[100] = {0};
printf("input num: ");
scanf("%d", &num);
for(i=0; num;i++)
{
str[i] =num%10+'0';
num/=10; // num = num / 10;
}
for(int j=0; j<i/2; j++)
{
str[j] ^=str[i-j-1];
str[i-j-1] ^=str[j];
str[j] ^=str[i-j-1];
}
puts(str);
return 0;
}
8、删除目标字符串中指定的字符串 如"abcdefg" 删除"cde" -> "abfg"
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100],dst[20];
printf("input str string: ");
gets(str);
printf("input dst string: ");
gets(dst);
int i=0, j, k, n, m;
while(str[i])
{
if(str[i] ==dst[0])
{
j=i+1;
k=1;
while(dst[k])
{
if(str[j++] !=dst[k])
break;
k++;
}
if(dst[k] =='\0')
{
n=k;
m=i;
while(k--)
{
str[m] =str[m+n];
m++;
}
i--;
}
}
i++;
}
puts(str);
return 0;
}
9、删除字符串中所有重复的字符如:"abacdbec" -> "abcde"
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100], ch;
puts("input string:");
gets(str);
int i=0, j, k;
while(str[i])
{
ch=str[i];
j=i+1;
while(str[j])
{
if(ch==str[j])
{
k=j;
while(str[k])
{
str[k] =str[k+1];
k++;
}
j--;
}
j++;
}
i++;
}
puts(str);
return 0;
}
10、从键盘输入若干个整数,其值在0-4范围内,输入-1表示结束输入,统计各个数字的个数
#include <stdio.h>
int main(int argc, char*argv[])
{
int num, count[5] = {0};
while(1)
{
printf("please input 0-4: ");
scanf("%d", &num);
if(-1==num)
break;
count[num]++;
}
for(int i=0; i<5; i++)
printf("%d input num = %d\n", i, count[i]);
return 0;
}
11、输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100];
int num[5] = {0};
puts("input string: ");
gets(str);
for(int i=0; str[i]; i++)
{
if(str[i] >='A'&&str[i] <='Z')
{
num[0]++;
}
elseif(str[i] >='a'&&str[i] <='z')
{
num[1]++;
}
}
return 0;
}
作业6:(二维数组)
1、计算二维数组所有元素的和
#include <stdio.h>
int main(int argc,char*argv[])
{
int n,m;
printf("input n:");
scannf("%d",&n); //键盘输入数组行
printf("input m:");
scanf("%d",&m);//键盘输入数组列
inta[i][j];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("please input a[%d][%d}: ",i,j);
scanf("%d",&a[i][j];
}
}
int num=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
num+=a[i][j];
}
}
printf("%d\n",num);
return 0;
}
2、把一个二维数组每一行都按从大到小排列.
#include <stdio.h>
int main(int argc, char*argv[])
{
int n,m;
printf("input n:");
scannf("%d",&n);
printf("input m:");
scanf("%d",&m);
int a[i][j];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("please input a[%d][%d}: ",i,j);
scanf("%d",&a[i][j];
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
for(int j=o; j<m-1;j++)
{
if(a[i][j] <a[i][j+1])
{
a[i][j] ^=a[i][j+2];
a[i][j+1] ^=a[i][j];
a[i][j] ^=a[i][j+1];
}
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("%d",a[i][j]);
}
puts("");
}
return 0;
}
3、删除二维字符数组中指定的字符.
#include <stdio.h>
int main(int argc, char*argv[])
{
int n;
printf("input n:");
scannf("%d",&n);
char ch,a[n][1000];
for(int i=0;i<n;i++)
{
printf("please input a[%d][1000}: ",i);
gets(a[i]);
}
printf("input delete char: ");
scanf("%c",&ch);
for(int i=0;i<n;i++)
{
for(int j=0; a[i][j];j++)
{
if(a[i][j] ==ch)
{
k=j;
while(a[i][j])
{
a[i][k] =a[i][k+1];
k++;
}
j--;
}
}
}
for(int i=0;i<n;i++)
{
printf("%s",a[i]);
puts("");
}
return 0;
}
作业7:用指针实现如下题目:
1、编写程序实现strcmp的功能
#include <stdio.h>
int main(int argc, char*argv[])
{
int op=0;
char str[100], dst[100];
printf("input str sting: ");
gets(str);
printf("input dst sting: ");
gets(dst);
char*ps=str, *pd=dst;
while(*ps){
if(*ps!=*pd)
break;
ps++;
pd++;
}
op=*ps-*pd;
printf("op: %d\n", op);
return 0;
}
2、编写程序实现strncat的功能.
#include <stdio.h>
int main(int argc, char*argv[])
{
int op=0;
char str[100], dst[100];
printf("input str sting: ");
gets(str);
printf("input dst sting: ");
gets(dst);
printf("input num: ");
scanf("%d", &op);
char*ps=str, *pd=dst;
while(*ps++);
ps--;
while(op--){
*ps++=*pd++;
}
*ps=0;
puts(str);
return 0;
}
3、编写程序实现字符串的循环移位
#include <stdio.h>
int main(int argc, char*argv[])
{
int op=0;
char str[100];
printf("input str sting: ");
gets(str);
printf("input num: ");
scanf("%d", &op);
char*ps=str, ch, *pt;
while(*ps++);
ps-=2;
pt=ps;
while(op--){
ps=pt;
ch=*ps;
while(ps!=str){
*ps=*(ps-1);
ps--;
}
*ps=ch;
}
puts(str);
return 0;
}
4、编写程序实现删除字符串中指定的字符.
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100], ch;
printf("input str sting: ");
gets(str);
printf("input delete char: ");
scanf("%c", &ch);
char*ps=str, *q;
while(*ps){
if(ch==*ps){
q=ps;
while(*q){
*q=*(q+1);
q++;
}
ps--;
}
ps++;
}
puts(str);
return 0;
}
5、编写程序实现将整型数据转换成字符串的功能 1234 -> "1234"
#include <stdio.h>
int main(int argc, char*argv[])
{
int num;
char str[100] = {0}, *ps=str;
puts("input num: ");
scanf("%d", &num);
while(num){
*ps++=num%10+'0';
num/=10;
}
*ps--=0;
char*q=str;
while(q<ps){
*q^=*ps;
*ps^=*q;
*q^=*ps;
q++, ps--;
}
puts(str);
return 0;
}
6、删除字符串中所有重复的字符如:"abacdbec" -> "abcde"
#include <stdio.h>
int main(int argc, char*argv[])
{
char str[100], *p=str, *q, *t;
puts("input string: ");
gets(str);
while(*p){
q=p+1;
while(*q){
if(*p==*q){
t=q;
while(*t){
*t=*(t+1);
t++;
}
q--;
}
q++;
}
p++;
}
puts(str);
return 0;
}
作业8:(字符指针、函数)
1、根据字符指针数组里每个字符串的长度进行排序.
#include <stdio.h>
#include <string.h>
int main(int argc,char*argv[])
{
char*s[3] = {"hello","welcome","world"}
char*p=s[0];
for(int i=0; i<2;i++)
{
for(int j=0;j<2;j++)
{
if(strlen(s[j]) >strlen(s[j+1]))
p=s[j];
s[j] =s[j+1];
s[j+1] =p;
}
}
for(int i=0;i<3;i++)
{
puts(s[i]);
}
return 0;
}
2、实现一个整型的算术计算器
#include <stdio.h>
int add(int a,int b);
int sub(int a,int b);
int mul(int a,int b);
int div(int a,int b);
int mod(int a,int b);
int main(int argc, char*argv[])
{
int a,b;
char op;
while(1)
{
scanf("%d %c %d", &a, &op, &b);
switch(op){
case '+':
printf("%d %c %d = %d\n", a, op, b, add(a,b));
break;
case '-':
printf("%d %c %d = %d\n", a, op, b, sub(a,b));
break;
case '*':
printf("%d %c %d = %d\n", a, op, b, mul(a,b));
break;
case '/':
printf("%d %c %d = %d\n", a, op, b, div(a,b));
break;
case '%':
printf("%d %c %d = %d\n", a, op, b, mod(a,b));
break;
}
}
return 0;
}
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int mul(int a,int b)
{
return a*b;
}
int div(int a,int b)
{
return a/b;
}
int mod(int a,int b)
{
return a%b;
}
3、封装函数mystrcmp实现strcmp的功能
#include <stdio.h>
int mystrmp(char art[],char dst[])
{
while(*str==*dst)
{
if(!*str)
return 0;
str++;
dst++;
}
return *str-*dst;
}
int main(int argc,char*argv[])
{
char art[100],dst[100];
printf("input str string: ");
gets(str);
printf("input dst string: ");
gets(dst);
printf("cmp: %d\n", mystrcmp(str, dst));//调用函数mystrcmp
return 0;
}
4、封装函数myatoi实现atoi函数的功能.//将整数型转换为字符型
#include <stdio.h>
int myatoi(char*str)
{
int op=1, num=0;
if('-'==*str){
op=-1;
str++;
}
while(*str){
if(*str<'0'||*str>'9')
break;
num= (*str-'0') +num*10;
str++;
}
return num*op;
}
intmain(int argc,char*argv[])
{
char str[100];
while(1){
printf("input string: ");
gets(str);
printf("myatoi: %d\n", myatoi(str));
}
return 0;
}
5、封装一个函数,实现对任意int型数组冒泡排序.//两个数组,通过冒泡法进行排序
#include <stdio.h>
void maopao(int a[], int n)
{
//sizeof(a)/sizeof(a[0]); //err a是数组的地址
for(int i=0; i<n-1; i++)
{
for(int j=0; j<n-1-i; j++)
{
if(a[j] >a[j+1])
{
a[j] ^=a[j+1];
a[j+1] ^=a[j];
a[j] ^=a[j+1];
}
}
}
/*
* 验证a是否是一个变量
int c = 10;
a = &c;
*/
}
void arr_ptr(int*a, int n)
{
for(int i=0; i<n; i++)
printf("%d ", a[i]);
puts("");
}
int main(int argc, char*argv[])
{
int a[5] = {-7, 9, 2, 3, 6};
int b[7] = {1, -5, -9, 3, 9, 7, 0};
puts("a:");
arr_ptr(a, 5);
puts("maopao a:");
maopao(a, 5);
arr_ptr(a, 5);
puts("b:");
arr_ptr(b, 7);
puts("maopao b:");
maopao(b, 7);
arr_ptr(b, 7);
return 0;
}
//第二种
#include <stdio.h>
void maopao(int*a,int n)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(*(a+j) >*(a+j+1))
{
*(a+j) ^=*(a+j+1);
*(a+j+1) ^=*(a+j);
*(a+j) ^=*(a+j+1);
}
}
}
}
int main(int argc, char*argv[])
{
int a[5] = {9,5,7,8,6},n=5;
maopao(a,n);
for(int i=0;i<n;i++)
printf("%d",a[i]);
puts("");
}