C语言疑难问题求解~~~~~~~~~

来源:百度知道 编辑:UC知道 时间:2024/06/08 11:24:17
1
编一函数fun(),其功能是:将长整型数中的每一位上为奇数的数依次取出,构成一个新数,作为函数返回值。高位仍在高位,低位仍在低位。
2
编写一函数fun(),其功能是:将所有大于1小于m的非素数存入xx 所指数组中,非素数的个数通过k值传回。
例如:输入17,则应输出:4 6 8 9 10 12 14 15 16
3
编写一函数fun(),其功能是:求二维数组a每一行的最大值,并将其最大值对应的列号存于一维数组b中。
4
编一程序,用简单的排序方法对10个整数排序(从大到小)。排序思路为:首先从n个整数中选出值为最大的整数,将它交换到第一个元素位置,再从剩余的n-1个整数中选出值次大的整数,将它交换到第二个元素位置,重复上述操作n次后,排序结束

第一题:
#include<stdio.h>
long fun(long n);
int main()
{ long n;
scanf("%ld",&n);
printf("%ld\n",fun(n));
}
long fun(long n)
{ long m=0;
for(;n!=0;n/=10)
if((n%10)%2) m=m*10+n%10;
for(n=m,m=0;n!=0;n/=10)
m=m*10+n%10;
return m;
}
第二题:
#include<stdio.h>
#include<math.h>
int fun(int m,int *xx);
int main()
{ int m,k,i,xx[1000];
printf("m=");
scanf("%d",&m);
k=fun(m,xx);
for(i=0;i<k;i++)
printf("%d ",xx[i]);
printf("\n");
}
int fun(int m,int *xx)
{ int i,j,k=0,s,f;
for(i=2;i<=m;i++)
{ s=sqrt(i);f=1;
for(j=2;j<=s;j++)
if(i%j==0) { f=0;break; }
if(f) xx[k++]=i;
}
return k;
}
第三题:
#include<stdio.h>
#include<math.h>
voi