有懂C语言的吗 从1-10个数里选一个整数,然后在剩下的9个数中再选一个,以此类推 用函数咋写,用到EX表格
作者&投稿:招范 (若有异议请与网页底部的电邮联系)
函数式编程是种编程范式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是 λ 演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。和过程化编程相比,函数式编程里,函数的计算可随时调用。
所以说JavaScript算是函数式编程语言。
#include
#include
long H(int n,int x)
{
if(n==0)return 1;
if(n==1)return 2*x;
if(n>1)return (2*x*H(n-1,x)-2*(n-1)*H(n-2,x));
}
main()
{
int n,x;
printf("when x=-1,program exits.");
while(1)
{
printf("n=");
scanf("%d",&n);
getchar();
if(n==-1)break;
printf("x=");
scanf("%d",&x);
getchar();
printf("result= %ld
",H(n,x));
}
}
什么意思?
你是说在excel表格里有任意10个数字,然后每次调用函数从中取出1个数字,直到取完所有10个数字?
如果要从excel里读取数字,最简单的办法是,把excel另存为csv文件(数字逗号分割)。
然后用文件流读取文件数据,存放在数组中,读取文件的代码我就不写了。
你要的从10个数字中依次读取随机一个数的函数,我写如下:
演示效果:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<malloc.h>
#include <unistd.h>
int getNum(int **nums,int *size);
int main()
{
//size就是数字个数,nums就是数组,你如果写文件读写,读出来的数字就存放在nums中就可以了,之后只要循环调用我的getNum函数就可以依次取值了。
int i,size=10,*nums=(int *)malloc(sizeof(int)*size);
srand(time(NULL));
for(i=0;i<10;i++)//我这里为了演示,nums数组里存放1,2,3,4,5,6,7,8,9,10十个数字
nums[i]=i+1;
while(1)
printf("数组中剩余数字个数%d,本次调用函数getNum获得数字%d
",size,getNum(&nums,&size));
//调用就像这样传参,函数会自动改变数组大小,还有size的值,你什么都不用管
//如果数组中数字已经被取完,还调用这函数,那么会提示“数组中无数据可取”,并自动结束程序,如果不希望被结束,自行控制调用次数
return 0;
}
int getNum(int **nums,int *size)
{
int rnum,i,j,*p;
if(*size==1)
{
*size=0;
return *nums[0];
}
if(*size==0)
{
printf("数组中无数据可取!
");
exit(0);
}
i=rand()%(*size);
rnum=(*nums)[i];
for(j=i;j<(*size)-1;j++)
(*nums)[j]=(*nums)[j+1];
(*size)--;
p=realloc(*nums,sizeof(int)*(*size));
if(p==NULL)
{
printf("内存申请失败!
");
exit(0);
}
*nums=p;
return rnum;
}
苌伊尿毒: C:#include #include #include int main() { int num[10] = {1,2,3,4,5,6,7,8,9,10}, i; srand((unsigned)time(0)); printf("从原数组: \n"); for(i = 0; i printf("%d ", num[i]); printf("\n中随机选出的4个数为: "); for(i = 0; iprintf("%d ", num[rand()...
正定县19617598547: C语言如何用选择法排序任意输入十个数(从大到小、从小到大)? - ?
苌伊尿毒: #include <stdio.h> main(void) {int i,j,a[10],p=0,t=0,temp; printf("请输入原数组:\n");for(j=0;j<10;j++)scanf("%d",&a[j]);temp=a[0]; for(j=0;j<9;j++){t=j;temp=a[j];for(i=j+1;i<10;i++)if(temp>a[i]) //这是由小到大排序 如果是大到小则改...
正定县19617598547: c语言编程中:从键盘输入10个整数,然后根据提示选择输入A或者D - ?
苌伊尿毒: 你是要实现什么功能? 在VC中编程可以用scanf();读取键盘数据,也可用getchar();获取输入的一个字符.如: int a[10],i; for(i=0;i{ scanf(a[i],%d);} 不知道这样用数组行不,不行就直接用最笨的方法 int a0,a1,a2,a3,a4,a5,a6,a7,a8,a9; ...
正定县19617598547: 怎样用C语言从一组特定数选出几个数的所有组合,例如从10个数中选出5个数的所有组合 - ?
苌伊尿毒: 我擦,这算法有些复杂,没搞对,弄了一个小时只弄出个全排列的,你看能改改不:#include <stdio.h> #define NUM 10int main () {int i, j, k, l, m, n, a[NUM];n = 0;printf("Enter NUM numbers:\n");for(i = 0; i < NUM; i++){scanf("%d", &a[i]...
正定县19617598547: c语言编程:从键盘输入10个数,要求找出里面最大的数和最小的数 - ?
苌伊尿毒: #include void main() { float max=-10000,min=99999,num; for(int i=0;i{ scanf("%f",&num); if(maxmax=num; if(min>num) min=num; } printf("the max is %f,min is %f:",max,min); }
正定县19617598547: c语言高手帮忙:从键盘输入10个整数.用选择法或冒泡法将它们从小到大的顺序排序,并以此顺序输出. - ?
苌伊尿毒: #include main() {int s[10],t,i,j,x;printf("input 10 numbers:\n");for(t=0;t<10;t++)scanf("%d",&s[t]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(s[j]>s[j+1]){t=s[j];s[j]=s[j+1];s[j+1]=t;}printf("the result is:\n ");for(j=0;j<10;j++)printf("%d",s[j]); printf("\n"); }
正定县19617598547: C语言 编程序 用选择法对10个数按从小到大的顺序排列.?
苌伊尿毒: int arr[10]; void sort() { for(int i=0;i<10;i++) { for(int j=i;j++;j<10) { if(arr[j]<arr[i]) { int tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; } } } } void main() { int i; for( i=0;i<10;i++) scanf("%d", arr[i]); int j; for(j=0;j<10;j++)printf("%d ", arr[j]) sort(); for(int i=0;i...
正定县19617598547: C语言编程求1到10共10个数中取出3个不同的数,共有几种组合方式 - ?
苌伊尿毒: #include<stdio.h>double Factorial(int n){double sum=1;while(n>0){sum=sum*n;--n;} return sum; }int main(){int m=10;int n=3;double num=0;num=(Factorial(m))/(Factorial(n)*(Factorial((m-n))));printf("%0.0f",num); }
正定县19617598547: C语言用数组,输入十个数,选择法按从小到大排列 - ?
苌伊尿毒: 1,.将第二个for语句中的for(j=0;j<=i;j++) 改为for(j=0;j<10;j++) 2.将for(i=0;i<9;i++)改为for(i=0;i<j;i++) 就可以了. (同为海淀区学生,加油)
正定县19617598547: C语言,用选择法对数组中10个整数按由小到大排序?求解释!!! - ?
苌伊尿毒: 首先以array[0]作为参照,从左到右扫描,找到最小的数据与array[0]位置交换. 接下来以array[1]作为参照,重复上述过程. ... k=i定位参照 k=j找到剩下数组中最小值