选择结构
- 输入一行字符,分别统计出其中中英文字母、空格、数字和其他字符的个数:
#include <stdio.h>
int main () {
char c;
int letter = 0,space = 0,num = 0,other = 0;
while ((c = getchar()) != '\n')
{
if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
{
letter++;
/* code */
}else if (c == ' ')
{
space++;
/* code */
}else if (c >= '0' && c <= '9')
{
num++;
/* code */
}else {
other++;
}
}
printf("字母:%d,数字:%d,空格:%d,其他:%d",letter,num,space,other);
return 0;
}
- 任意输入 3 个整数,编程实现对这 3 个整数由小到大进行排序。
#include <stdio.h>
int main()
{
int a,b,c,t;
printf("请输入三个数:");
scanf("%d%d%d",&a,&b,&c);
if(a > b)
{
t = a;
a = b;
b = t;
}
if(a > c)
{
t = a;
a = c;
c = t;
}
if(b > c)
{
t = b;
b = c;
c = t;
}
printf("从小到大的顺序是:%d %d %d\n",a,b,c);
return 0;
}
3.输入三个整数a,b,c,输出最大的数
#include <stdio.h>
int main()
{
int a,b,c,max;
printf("请输入三个数:");
scanf("%d%d%d",&a,&b,&c);
max = a;
if (b > max)
{
max = b;
}
if (c > max)
{
max = c;
}
printf("%d",max);
return 0;
}
循环结构
- 输入两个正整数m、n,求最大公约数和最小公倍数
#include <stdio.h>
int main () {
int i,m,n;
int t;
printf("输入m:");
scanf("%d",&m);
printf("输入n:");
scanf("%d",&n);
if (m < n) //把大数给m,小数给n
{
t = m;
m = n;
n = t;
}
for ( i = n; i > 0 ; i--) //不超过n,从n开始往下找
{
if (m % i == 0 && n % i == 0)
{
printf("最大公约数为:%d\n",i); //公约数:可以同时整除m n的最大值
printf("最小公倍数为:%d",(m * n) / i); //公倍数:(两数乘积)/公约数
break;
}
}
return 0;
}
- 求S = a+aa+aaa+…+aaaaa的值,其中a是一个数字,n是a的位数,例如:n=3——a+aa+aaa,n由键盘输入:
#include <stdio.h>
int main () {
int a = 2,n,i;
printf("输入n:");
scanf("%d",&n);
int sum = 0,num = a; //sum累计num的和,num记录每一次a增加一个单位的值
for ( i = 0; i < n; i++)
{
sum += num; //总和
num = num*10+a; //num每次自乘10再加上个位数a
}
printf("%d",sum);
return 0;
}
- 20以内的阶乘(1!+2!+3!+····+20!)的和,阶乘(5! = 1x2x3x4x5),其他题目:求n的阶乘,n由键盘输入(解法类似):
#include <stdio.h>
int main () {
int i;
long long sum = 1,end = 0; //int、long会溢出,存不了
for ( i = 1; i <= 20; i++)
{
sum *= i; //计算单个的阶乘
end += sum; //计算总和
/* code */
}
printf("%lld",end); //2561327494111820313
return 0;
}
- 求(1+2+3+···+100)+(1平方+2的平方+····+50的平方)+(1/1+1/2+1/3+···+1/10)的值:
#include <stdio.h>
int main () {
int i;
int sum1 = 0, sum2 = 0;
float sum3 = 0;
for ( i = 1; i <= 100; i++)
{
sum1 += i; //1-100求和
if (i <= 50)
{
sum2 += i * i; //1-50求平方
/* code */
}
if (i <= 10)
{
sum3 += 1.0 / i; //1-10求 1/i 的和
/* code */
}
/* code */
}
printf("%f",sum1 + sum2 + sum3); //47977.929688
return 0;
}
- 输出1000以内所有水仙花数:
153是一个水仙花数,因为153=1x1x1+5x5x5+3x3x3
#include <stdio.h>
int main () {
int i, a, b, c;
for ( i = 100; i < 1000; i++)
{
a = i / 100; //求百位
b = (i / 10) % 10; //十位
c = i % 10; //个位
if (a*a*a + b*b*b + c*c*c == i)
{
printf("%d\t",i); //153 370 371 407
/* code */
}
/* code */
}
return 0;
}
- 找出1000以内所有完数:
完数:一个数等于它的因子之和,例如:6的因子为:1,2,3,而1+2+3=6,所以6是完数
#include <stdio.h>
int main () {
int i, j, sum;
for ( i = 2; i <= 1000; i++)
{
sum = 0; //每次判断完重制sum
for ( j = 1; j < i; j++) //从1开始找 i 的因子
{
if (i % j == 0) //如果能被整除,代表是因子,则叠加到sum中
{
sum += j;
}
}
if (sum == i) //如果因子的和与这个数一致,它就是完数
{
printf("%d\t",i); //6 28 496
}
}
return 0;
}
- 求此分数序列(2/1,3/2,5/3,8/5···)前20项的和:
#include <stdio.h>
int main () {
int i;
float a = 2, b = 1, sum = 0, t;
for ( i = 0; i < 20; i++)
{
sum += a / b; //是分子 a / 分母 b 的累加和,而下一项的分子 a 是此项 a+b 的和,分母是此项的 分子a
t = a; //将分子 a 提取出来
a = a + b; //下一项分母为此项的 a+b
b = t; //赋值给分母
/* code */
}
printf("%f",sum); //32.660263
return 0;
}
- 一个球从100m高度落下,落地后反弹回原高度的一半,再落下再反弹,第10次落地时,共经过了多少米?第10次反弹多高?
#include <stdio.h>
int main () {
int i;
float sum = 0, a = 100;
for ( i = 1; i <= 10; i++)
{
sum += a; //总计1-10次落下的距离
a = a / 2; //弹起距离 = 上次落下距离 / 2
if (i <= 9)
{
sum += a; //总计1-9次弹起的距离,在弹起的距离等于下一次落下的距离,持续循环累加到下一次sum里
}
}
printf("共经过:%f米\n",sum); //共经过:299.609375米
printf("第十次反弹%f米",a); //第十次反弹0.097656米
return 0;
}
---------写法2---------------
int main()
{
int i;
float sum = 100, drop, jump;
for ( i = 0; i < 10; i++)
{
drop += sum; //10次落下的总和
sum = sum/2; //每次落下后弹起距离减半
jump += sum; //10次弹起的总和(包括第10次落下后弹起)
}
printf("%f %f",drop+jump-sum,sum); //10次落下的总和不包括第10次弹起,所以减去sum,sum为每次弹起/落下的距离
return 0;
}
- 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,发现只剩下一个桃子了。编写程序求猴子第一天摘了多少个桃子
#include <stdio.h>
int main () {
int i, sum, rest;
rest = 1; //第10天余剩的个数
for ( i = 9; i > 0; i--) //执行9次
{
sum = (rest + 1) * 2; //推算前一天桃子的总数是(今日余剩个数 + 1) * 2 个
rest = sum; //前一天的余剩个数
/* code */
}
printf("%d",sum);//1534
return 0;
}
- 输出星星菱形
#include <stdio.h>
int main () {
int i, j, k, xx = 1; //初始星星 = 1
for ( i = 0; i < 7; i++)
{
for ( j = 0; j < (7 - xx) / 2; j++) //空格数量 = (最宽/长的星星数 - 当前星数)/ 2
{
printf(" ");
}
for ( k = 0; k < xx; k++) //输出星星
{
printf("*");
}
printf("\n");
if (i < 3) //当x < 3时,前3行(i = 2)为每次星星数递增 2;第4行时(i = 3)每次递减 2
{
xx += 2;
}else {
xx -= 2;
}
}
return 0;
}
- 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
#include <stdio.h>
int main()
{
char i,j,k;
for ( i = 'x'; i <= 'z'; i++)
{
for ( j = 'x'; j <= 'z'; j++)
{
for ( k = 'x'; k <= 'z'; k++)
{
if (i != j && i != k && j != k)
{
if (i != 'x'&& k != 'x' && k != 'z')
{
printf("a--%c,b--%c,c--%c",i,j,k); //a--z,b--x,c--y
}
}
}
}
}
return 0;
}
- 求100-200之间全部素数(类似题:输入一个大于3的整数n,判断它是否为素数)
素数:只能被1和它本身整除的数
#include <stdio.h>
int main () {
int i, j, mark;
for ( i = 100; i <= 200; i++)
{
mark = 1; //进入循环时全部打上标记
for ( j = 2; j < i; j++) //从2 - i-1的范围循环
{
if (i % j == 0) //如果能被任意j整除的数就不是素数,标记变为0
{
mark = 0;
}
}
if (mark == 1) //经过循环后标记还是1的就是素数
{
printf("%d\t",i);
}
}
return 0;
}
数组
- 用数组求Fibonacci数列前20项(每行显示5个):
Fibonacci(斐波那契):第1,2项的值为1,往后每一项的值的都是前两项相加的和,例如:1,1,2,3,5····
#include <stdio.h>
int main()
{
int a[20], i;
a[0] = 1,a[1] = 1; //第一二项为1
for ( i = 2; i < 20; i++) //从第3三项开始
{
a[i] = a[i-1] + a[i-2];
}
for ( i = 0; i < 20; i++)
{
if (i % 5 == 0) //到第五个换行
{
printf("\n");
}
printf("%10d",a[i]);
}
return 0;
}
- 输入10个数的数组,从小到大使用冒泡排序:
#include <stdio.h>
int main()
{
int a[10], i ,j ,t;
for ( i = 0; i < 10; i++)
{
scanf("%d",&a[i]);
}
for ( i = 0; i < 9; i++) //从第一个元素到最后一位走9趟
{
for ( j = 0; j < 9 - i; j++) //比较9-j次,已比较的不需要再比较
{
if (a[j] > a[j+1]) //如果第j项大于第j+1项,则互换位置
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
for ( i = 0; i < 10; i++)
{
printf("%d\t",a[i]);
}
return 0;
}
- 输入一行字符,统计一共有多少个单词,单词间用空格隔开
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
char c;
int i, num = 0, word = 0;
gets(str);
for ( i = 0; (c = str[i]) != '\0'; i++) //获取str的每一个字符
{
if (c == ' ') //当字符是空格时word记为0
{
word = 0;
}else if (word == 0) //当字符不是空格并且前一个字符是空格时表示新单词出现,word标记1,num累加
{
word = 1;
num++;
}
}
printf("共:%d个单词",num);
------------------一行秒杀写法---------------
char str[100];
char c;
gets(str);
int num = 0;
for (int i = 0; (c = str[i]) != '\0'; i++)
{
if (str[i] == ' ' && str[i-1] != ' ') num++;
//若本字符是空格且前一个字符不为空格则代表新单词
}
printf("%d", num);
return 0;
}
- 利用筛选法求100以内的素数
#include <stdio.h>
#include <string.h>
int main()
{
int a[100];
int i, j;
for ( i = 0; i < 100; i++) //写入数组
{
a[i] = i + 1; //从1开始
}
a[0] = 0; //1不是素数所以直接为0
for ( i = 1; i < 100; i++) //从2开始往后遍历
{
for ( j = i + 1; j < 100; j++) //如果2往后的数能被2整除,则不是素数,设为0
{
if (a[i] != 0 && a[j] != 0){ //排除往后已经被设为0的数
if (a[j] % a[i] == 0)
{
a[j] = 0;
}
}
}
}
for ( i = 0; i < 100; i++)
{
if (a[i] != 0) //剩下不是0的数就是素数
{
printf("%d ",a[i]);
}
}
return 0;
}
- 用选择法对10个整数排序
#include <stdio.h>
int main()
{
int a[11];
int i, j, t;
for ( i = 0; i < 10; i++)
{
scanf("%d",&a[i]);
}
for ( i = 0; i < 9; i++) //从第1项到第9项遍历
{
for ( j = i + 1; j < 10; j++) //从第2项到第10项遍历
{
if (a[i] > a[j]){ //如果i大于j(i+1)的值则互换位置,然后用现在的i(原j的值)与下一个j(i+1的再下一项)对比
t = a[i]; //用第一项与余剩全部项比较,找到最小的值放在数组第一位,再继续第二项比较
a[i] = a[j];
a[j] = t;
}
}
}
for ( i = 0; i < 10; i++)
{
printf("%d ",a[i]);
}
return 0;
}
- 输入一个数,按照排序规律将他插入到一个已排好序的数组中:
#include <stdio.h>
int main()
{
int arr[11]={1,4,6,9,13,16,19,28,40,100};
int i, j, a;
scanf("%d",&a);
if (a > arr[9]) //如果a大于数组的最大值就直接插到尾部
{
arr[10] = a;
}else {
for ( i = 0; i < 10; i++)
{
if (arr[i] > a){ //遍历数组找到第一项大于a的值,从那一项到数组最后一项往后挪一位,再把a插入到那一项的位置中并退出循环
for ( j = 9; j >= i; j--)
{
arr[j + 1] = arr[j];
}
arr[i] = a;
break; //插入完一定要结束循环!!
}
}
}
for ( i = 0; i < 11; i++)
{
printf("%d ",arr[i]);
}
return 0;
}
- 将一个数组中的值按逆序重新存放,例如原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。(没说不能用新数组吧):
#include <stdio.h>
int main()
{
int i, arr[9] = {5,9,6,2,4,61,71,6,81};
int newArr[9]; //新数组
int k = 8; //数组长度
for ( i = 0; i < 9; i++)
{
newArr[i] = arr[k]; //把旧数组最后一项[k]赋值给新数组第一项[i]
k--; //k随i增加减少
}
for ( i = 0; i < 9; i++)
{
printf("%d ",newArr[i]);
}
return 0;
/*-----------正常同一个数组翻转--------------*/
int i, arr[9] = {15,61,71,6,81,45,138,44,8};
int t, arrlen = 8;
int a = arrlen % 2 == 0 ? arrlen/2 : arrlen/2+1; //如果数组长度为单数则多执行一次
for ( i = 0; i < a; i++) //只执行数组长度的一半次数
{
t = arr[i];
arr[i] = arr[arrlen-i];
arr[arrlen-i] = t; //与数组对应位置的元素交换
}
for ( i = 0; i < 9; i++)
{
printf("%d ",arr[i]);
}
return 0;
}
/*考试建议用这个*/ /*考试建议用这个*/ /*考试建议用这个*/
#include <stdio.h>
void exChange(int *x,int n) { //n为数组长度
int *i, *j, *p, t, m = (n-1)/2;
i = x, j = x+n-1, p = x+m; //i指向数组第一个值,j指向数组最后一个值,p指向数组中间的值(向下取整)
for ( ; i <= p; i++,j--) //交换 i 和 j 的值,同时向中间p ++和--
{
t = *i;
*i = *j;
*j = t;
}
}
int main()
{
int a[10] = {15,61,71,6,81,45,138,44,8,99};
exChange(a,10);
for (int i = 0; i < 10; i++)
{
printf("%d ",a[i]);
}
return 0;
}
- 杨辉三角
#include <stdio.h>
int main()
{
int len;
scanf("%d",&len);
int i, j;
int arr[len][len]; //建立一个等宽二维数组
for ( i = 0; i < len; i++)
{
arr[i][0] = 1; //每一行的第一项和最后一项都为1
arr[i][i] = 1;
for ( j = 1; j < i; j++) //从第二项开始循环
{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
//第J项等于上一行的J-1和J项的和
}
}
for ( i = 0; i < len; i++)
{
for ( j = 0; j < len-i-1; j++) //等腰三角形,直角可去
{
printf(" ");
/* code */
}
for ( j = 0; j <= i; j++) //输出每一项的值
{
printf("%4d",arr[i][j]);
}
printf("\n");
}
return 0;
}
函数
- 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,整数在键盘输入:
#include <stdio.h>
int big(int n1,int n2) {
int i, t;
if (n1 < n2)
{
t = n2;
n2 = n1;
n1 = t;
}
for ( i = n2; i > 0; i--)
{
if (n1 % i == 0 && n2 % i == 0)
{
return i;
}
}
}
int small(int n1,int n2,int n3) {
return (n1 * n2) / n3;
}
int main()
{
int n1,n2;
scanf("%d%d",&n1,&n2);
int num = big(n1,n2);
printf("最大公约数为:%d\n",num);
printf("最小公倍数为:%d",small(n1,n2,num));
return 0;
}
- 写一个判断素数的函数,输入一个素数,输出是否素数的信息:
#include <stdio.h>
int prime(int n) {
int i, j;
for ( i = 2; i < n; i++)
{
if (n % i == 0)
{
printf("不是素数");
return 0;
}
}
printf("%d是素数",n);
}
int main()
{
int n;
scanf("%d",&n);
prime(n);
return 0;
}
- 写一个函数,翻转输入的字符串:
#include <stdio.h>
#include <string.h>
void reveStr(char str[]) {
int i, len = strlen(str), n = len - 1;
char newStr[len];
for ( i = 0; i <= len; i++) //i <= len因为要把'\0'也拿过来
{
newStr[i] = str[i + n]; //最后一项给新字符串第一项赋值,依次到倒数第二项···
n -= 2;
}
puts(newStr);
-------------与数组翻转相同--------------------
int i, len, a, t;
len = strlen(str)-1;
a = len%2==0 ? len/2 : len/2+1;
for ( i = 0; i < a; i++)
{
t = str[i]; str[i] = str[len-i]; str[len-i] = t;
}
puts(str);
}
int main()
{
char str[100];
gets(str);
reveStr(str);
return 0;
}
- 一个连接两个字符串的函数:
#include <stdio.h>
#include <string.h>
void strCat(char str[],char str2[]) {
int len = strlen(str);
int len2 = strlen(str2);
char newStr[len + len2];
int i;
for ( i = 0; i < len+len2; i++)
{
if (i < len)
{
newStr[i] = str[i];
}else if(i >= len){
newStr[i] = str2[i-len];
}
}
newStr[i] = '\0';
puts(newStr);
}
int main()
{
char str[100];
gets(str);
char str2[100];
gets(str2);
strCat(str,str2);
return 0;
}
//------------------老赖做法
#include <stdio.h>
#include <string.h>
void connect(char str1[],char str2[]) {
strcat(str1,str2);
puts(str1);
}
int main()
{
char str1[100];
char str2[100];
gets(str1);
gets(str2);
connect(str1,str2);
return 0;
}
- 写一个函数,输入一个4位数字,要求每两个数字中间有一个空格,例如输入1234,输出1 2 3 4。
#include <stdio.h>
#include <string.h>
void space(char str[])
{
int i;
for(i=strlen(str);i>0;i--) //从数组最后一个元素开始,到第二个元素结束,也就是'\0'- 输入的第一个数
{
str[2*i]=str[i]; //因为加每个数中加空格 = 数组长度*2是最后一项,把数组最后一项'\0'放在数组长度*2 位置上
str[2*i-1]=' '; //并在前一个位置加空格,继续循环倒数第二项,然后加空格····
}
printf("\nOutput:\n%s",str);
}
int main()
{
char str[100];
gets(str);
space(str);
return 0;
}
//-----------------------老赖做法
#include <stdio.h>
#include <string.h>
#define MaxSize 100
void space(char str[]){
int i;
for ( i = 0; i < strlen(str); i++)
{
printf("%c ",str[i]);
}
}
int main()
{
char str[MaxSize];
gets(str);
space(str);
return 0;
}
- 写一个函数,传入一个字符串,统计其中字母、数字、空格和其他字符的个数:
#include <stdio.h>
#include <string.h>
void Statistics(char str[]) {
int len = strlen(str);
int i, letter = 0, num = 0, space = 0, other = 0;
for ( i = 0; i < len; i++)
{
if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z')
{
letter++;
}else if (str[i] >= '0' && str[i] <= '9')
{
num++;
}else if (str[i] == ' ')
{
space++;
}else {
other++;
}
}
printf("字母:%d,数字:%d,空格:%d,其他:%d",letter,num,space,other);
}
int main()
{
char str[100];
gets(str);
Statistics(str);
return 0;
}
- 写一个函数,用冒泡排序对输入的10个字符排序:
#include <stdio.h>
int maopao(int num[]) {
int i, j, t = 0;
for ( i = 0; i < 9; i++)
{
for ( j = 0; j < 9 - i; j++)
{
if (num[j] > num[j+1])
{
t = num[j];
num[j] = num[j+1];
num[j+1] = t;
}
}
}
for ( i = 0; i < 10; i++)
{
printf("%d ",num[i]);
}
}
int main()
{
int num[100];
int i;
for ( i = 0; i < 10; i++)
{
scanf("%d",&num[i]);
}
maopao(num);
return 0;
}
- 输入一个整数n,求斐波那契数列的第n项:
斐波那契数列:每一项等于前二项的和,例如1,1,2,3,5,8,13·····
#include <stdio.h>
long Fibonacci(int n) {
long s;
if (n == 1 || n == 2)
{
return 1;
}else {
s = Fibonacci(n-1) + Fibonacci(n-2);
}
return s;
}
int main()
{
int n;
scanf("%d",&n);
if (n < 0)
{
printf("不能为0");
}else {
printf("第%d项的值为:%ld",n,Fibonacci(n));
}
return 0;
}
- 输入10个整数,将最小的数与第一个数对换,最大的数与最后一个对换
#include <stdio.h>
void change(int a[10]) {
int max = a[0],min = a[0],t,i,imax = 0,imin = 0;
for ( i = 0; i < 10; i++)
{
if (a[i] > max)
{
max = a[i];
imax = i;
}
if (a[i] < min)
{
min = a[i];
imin = i;
}
}
t = a[0];
a[0] = a[imin];
a[imin] = t;
t = a[9];
a[9] = a[imax];
a[imax] = t;
}
int main()
{
int a[10],i;
for ( i = 0; i < 10; i++)
{
scanf("%d",&a[i]);
}
change(a);
for ( i = 0; i < 10; i++)
{
printf("%d ",a[i]);
}
return 0;
}
指针
- 输入三个整数,要求从大到小排序输出,用函数实现:
#include <stdio.h>
void swap(int *pt,int *pt1) {
int t;
t = *pt;
*pt = *pt1;
*pt1 = t;
}
void Big(int *q,int *q1,int *q2) {
if (*q < *q1)
{
swap(q,q1);
}
if (*q < *q2)
{
swap(q,q2);
}
if (*q1 < *q2)
{
swap(q1,q2);
}
}
int main()
{
int a, b, c, *p, *p1, *p2;
scanf("%d%d%d",&a,&b,&c);
p = &a;
p1 = &b;
p2 = &c;
Big(p,p1,p2);
printf("%d %d %d",a,b,c);
return 0;
}
- 输入三个字符串,从小到大排序:
#include <stdio.h>
#include <string.h>
void change(char *q,char *q1) {
char str[20];
strcpy(str,q);
strcpy(q,q1);
strcpy(q1,str);
}
void Big(char *pt,char *pt1,char *pt2) {
if (strcmp(pt,pt1) > 0)
{
change(pt,pt1);
}
if (strcmp(pt,pt2) > 0)
{
change(pt,pt2);
}
if (strcmp(pt1,pt2) > 0)
{
change(pt1,pt2);
}
}
int main()
{
char a[100], b[100], c[100];
gets(a);
gets(b);
gets(c);
char *p ,*p1 ,*p2;
p = a;p1 = b;p2 = c;
Big(p,p1,p2);
printf("%s %s %s",a,b,c);
return 0;
}
- 输入10个整数,将最小的数与第一个数对换,最大的数与最后一个对换:
#include <stdio.h>
#include <string.h>
void change(int a[10]) {
int i ,t;
int *p,*max,*min;
p = max = min = a;
for ( i = 0; i < 10; i++,p++)
{
if (*p > *max)
{
max = p;
}
if (*p < *min)
{
min = p;
}
}
t = a[0];
a[0] = *min;
*min = t;
t = a[9];
a[9] = *max;
*max = a[9];
}
int prin(int a[10]) {
int i;
for ( i = 0; i < 10; i++)
{
printf("%d ",a[i]);
}
}
int main()
{
int i, a[10];
for ( i = 0; i < 10; i++)
{
scanf("%d",&a[i]);
}
change(a);
prin(a);
return 0;
}