有6道题,都是小程序,请求高手帮忙,这个学期我忙学数学,C程基本不怎么学啊~~~~大家看看会哪几道,帮我编一下吧,小弟先在这谢谢了~~~
1. 请编写函数long fun(long int x),功能是:将长整型数x中每一位上为奇数的数依次取出,并逆序构成一个新数返回。例如:程序运行时输入123456789,输出:b=97531。
#include<stdio.h>
long fun(long int x)
{
}
void main()
{long a,b;
printf("Please input a long int num:");
scanf("%ld",&a);
b=fun(a);
printf("b=%ld\n",b);
}
2. 编写函数void fun(char *s,char *t,char *p)将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。
例如: 当s为"12345", t为"8624677"时, p中的字符为: "867";
当s为”good luck”,t为”thank you very much”时,输出:”thanyverm”
#include<math.h>
void fun(char *s,char *t,char *p)
{
}
void main()
{char s1[50],s2[50],s3[50];
gets(s1);gets(s2);
fun(s1,s2,s3);
puts(s3);
}
3. 编写函数int fun(int m),计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<=m最大的n。例如,当m=10000时,程序输出:n=38。
int fun(int m)
{
}
void main()
{int x;
scanf("%d",&x);
printf("n=%d\n",fun(x));
}
4. 编写函数void fun(int *x,int n),它的功能是:求出数组x中的最小数和次最小数,并把最小数和a[0]中的数对调、次最小数和a[1]中的数对调,其余的数保持不变。如程序运行时若输入:2 4 6 11 3 9 7 0 5 8,则输出:0 2 6 11 3 9 7 4 5 8。
#define N 10
void fun(int *x,int n)
{
}
main()
{int a[N],i;
for(i=0;i<N;i++)
scanf("%d",a+i);
fun(a,N);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
}
5. 编写函数long fun(int high,int n),功能是:计算并返回high以内(不包含high)最大的n个素数之和。若不足n个,则到最小素数2为止。例如:若high=100,n=10,则函数的返回值为:732;若high=11,n=10,则函数返回:17。
long fun(int high,int n)
{
}
void main()
{int k,n;
scanf("%d%d",&k,&n);
printf("sum=%ld\n",fun(k,n));
}
6. 请编写函数int fun(int *a,int n),它的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把奇数从数组中删除,偶数个数通过函数值返回,以-1作为有效数据的结束标志。例:若输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,输出:2 4 6 8 10 12 14 n=7
int fun(int *a,int n)
{
}
void main()
{int x[15],i,n;
for(i=0;i<15;i++)
scanf("%d",x+i);
n=fun(x,15);
for(i=0;x[i]!=-1;i++)
printf("%d ",x[i]);
printf("n=%d\n",n);
}