跪求c语言高手~~编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 10:12:40
一、请定义一个能判断给定自然数m是否是对称数的函数is_sym
提示:
对称数(也称“回文数”)是这样的自然数,从左向右或从右向左读这个数都是相同的,例如,11、121、23832都是对称数,而13913、2323都不是对称数。
函数原型:int is_sym(long m)
函数功能:判断m是否是对称数
函数返回:若m是对称数返回1,否则返回0

二、已知某人岁数的3次方是个4位数,还知道此人岁数的3次方和4次方用遍了0~9这10个数字,现在请编写一个程序求此人的实际岁数。
提示:
由条件1可知此人的岁数范围是在10到21之间,因为, =1000, =9261,而( =10648)>9999。根据条件2,可设置一个10个元素的数组d(初始10个元素都为0),然后,依次从求10~21各数的3次方和4次方,并将结果值各位的数码所对应的d数组的元素置为1,此时,若d数组的10个元素均为1,则该数就是此人的岁数。

三、请用递归算法求数组中前n个元素的平均值。
提示:
设ave(n)是求n个元素平均值的函数,根据递归算法的要点,要找出“n个元素的平均值”与“n-1个元素的平均值”之间的关系(即,找出递归公式),显然有ave(n)= (n-1)*ave(n-1)+ a[n-1]/n成立,因为,“n-1个元素的平均值”ave(n-1)乘以(n-1)就是前n个元素之和,它加上a[n-1]就是n个元素之和(注意:数组元素的下标从0开始计数,所以第n个元素是a[n-1])。至于边界条件是:当n等于1时,ave(1)= a[0]。
函数原型:float ave(int n)
函数功能:用递归方法求前n元素的平均值
函数返回:n元素的平均值

四、将键盘输入字符串中的数字转换成相应的数值输出,并统计数值的个数。例如,键入字符串“we123bn67 34ad 98.”输出4个数值:123 67 34 98

不是小弟我太懒惰,主要是要的太急才学没几天实在赶不出来了求各位帮帮忙

1
#include<stdio.h>
int is_sym(long m)
{
long n=0,x=m;
while(x!=0)
{
n=n*10+x%10;
x/=10;
}
if(n==m)
return 1;
else
return 0;
}
void main()
{
printf("%d %d %d",is_sym(1234321),is_sym(1234),is_sym(123321));
}

2
#include<stdio.h>
void main()
{
int age,i,x,y,flag;
int a[10];
for(age=10;age<=21;age++)
{
for(i=0;i<10;i++)
a[i]=0;
flag=1;
x=age*age*age;
y=x*age;
while(x!=0)
{
i=x%10;
x/=10;
a[i]++;
}
while(y!=0)
{
i=y%10;
y/=10;
a[i]++;
}
for(i=0;i<10;i++)
if(a[i]!=1)
flag=0;
if(flag==1)
printf("年龄是%d\n",age);
}
}

3
#include<stdio.h>
#define M 100
int a[M];
float ave(int n)
{<