#include<stdio.h>
#include<stdlib.h>
int n=0;
int arr[100];
//十进制转换八进制
void Tes1(int a)
{
arr[n]=a%8;
if(a<8)
{
return;
}
n++;
Tes1(a/8);
}
void Test1Put(int a)
{
Tes1(a);
int i;
for(i=0;i<=n;i++)
{
printf("%d",arr[n-i]);
}
}
//八进制转换十进制
void Ten_Eight(int a)
{
int i,sum=0,nn;
int index=0;
sum+=a%10;
while(a>=10)
{
nn=a/10%10;
index++;
for(i=0;i<index;i++)
{
nn*=8;
}
sum+=nn;
a/=10;
}
printf("%d\n",sum);
}
//奇数和
int* JiShu(int *arr)
{
int i,sum=0;
int *add;
for(i=0;i<10;i++)
{
if(i%2==1)
{
sum+=arr[i];
}
}
add=∑
return add;
}
//偶数和
int* OuShu(int *arr)
{
int i,sum=0;
int *even;
for(i=0;i<10;i++)
{
if(i%2==0)
{
sum+=arr[i];
}
}
even=∑
return even;
}
//第四题 写一个函数int digit(int n,int k),
//返回n的从右向左的第k个十进制数字位值;例如:digit(1357,2),将返回5.
int digit(int n,int k)
{
char arr[200];
itoa(n,arr,10);
printf("\n%c\n",arr[k]);
}
//给一个不多于9位的正整数1)求它是几位数 逆序打印
void IfNumber(int a)
{
int i=1;
int n=a;
printf("倒叙输出:%d",a%10);
while(a>=10)
{
printf("%d",a/10%10);
a/=10;
i++;
}
printf("\n%d是%d位数\n",n,i);
}
//输入10个整数,将其中最小的数与第一个数对换,最大的数与最后一个数对换,
//要求用指针法分别写三个函数;输入10个整数;按要求对数进行交换;输出10个数
void PutFun(int *arr)
{
int i;
for(i=0;i<10;i++)
{
printf("%d ",arr[i]);
}
}
int* ScanfFun()
{
int arr[10];
scanf("%d%d%d%d%d%d%d%d%d%d",&arr[0],&arr[1],&arr[2],&arr[3],
&arr[4],&arr[5],&arr[6],&arr[7],&arr[8],&arr[9]);
int *p=arr;
return p;
}
void ChangeFun(int *arr)
{
int i,j,temp;
int num[10];
for(j=0;j<10;j++)
{
num[j]=arr[j];
for(i=0;i<9;i++)
{
if(arr[i]>arr[i+1])
{
temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
num[0]=arr[0];
num[9]=arr[9];
PutFun(num);
}
void main()
{
int numArr[10]={2,1,2,9,0,5,6,7,8,1};
printf("奇数和:%d,偶数和:%d\n",*JiShu(numArr),*OuShu(numArr));
printf("\n十进制转换八进制结果:");
Test1Put(633);
printf("\n八进制转换十进制结果:");
Ten_Eight(1171);
digit(146456,3);
IfNumber(6542);
ChangeFun(numArr);
PutFun(ScanfFun());
}