c语言, 编写一个函数,完成一维数组的逆置。主函数中输入一个一维数组,然后调用该自定义函数进行原地逆

作者&投稿:大叔音 (若有异议请与网页底部的电邮联系)
(C语言急求)写一个递归函数,把一个数组的元素逆置。在主函数中输入和输出数组元素。~

void digui(int a[],int i,int n)
{
int temp;
while(i/2!=n/2)
{
temp=a[i];
a[i]=a[n];
a[n]=temp;
digui(a,++i,--n);
}
}
在主函数中调用digui(a,0,n); //n为你定义的数组实际长度

#include
void main()
{
void reverse(int *ptr, int left, int right);
void swap(int *ptr, int a, int b);
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int k = 0;
int left = 0, right = 9;
printf("请输入需要逆置的个数:
");
scanf("%d", &k);
right = k - 1;
reverse(a, left, right);
for(int i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("
");
}
void swap(int *ptr, int a, int b)
{
int temp;
temp = *(ptr + a);
*(ptr + a) = *(ptr + b);
*(ptr + b) = temp;
}
void reverse(int *ptr, int left, int right)
{
if((left == right) || (left > right))
return;
swap(ptr, left, right);
left++;
right--;
reverse(ptr, left, right);
}

#include "stdio.h"
void arrrev(int *p,int n){
int *q,t;
for(q=p+n-1;p<q;p++,q--)
t=*p,*p=*q,*q=t;
}

int main(int argc,char *argv[]){
int a[100],n,i;
printf("Please enter a set of integers(other end)...
");
for(n=0;n<100;n++)
if(scanf("%d",a+n)!=1)
break;
while(getchar()!='
');
arrrev(a,n);
for(i=0;i<n;printf("%d ",a[i++]));
printf("
");
return 0;
}

运行样例:




漾濞彝族自治县18988751939: C语言问题:写一个函数,求一个一维数组中各元素值之和. -
羽备低分: int sum(int *arr,int size){ int i; int sum=0; for(i=0;i

漾濞彝族自治县18988751939: C语言,编写函数,将一个整数插入到一维数组的指定位置,并在主函数中调用该函数,在主函数中输出结果 -
羽备低分: void Insert(int a[],int n,int b,int i) { int m; for(m=n-1;m>=i;m--)a[m+1]=a[m]; a[m]=b; }

漾濞彝族自治县18988751939: 用c语言编写一个函数,实现对一维数组进行按降序排序并输出 有没有大神知道咋做啊 感谢! -
羽备低分: 直接用sort就行了

漾濞彝族自治县18988751939: C语言编程:编写一个判定素数的函数,并在主函数中求一维数组中素数元素之和.
羽备低分: #include<stdio.h> #include<math.h> void main() { int ss(int d[]); int d[100] for(int j=0;j<100;j++) scanf("%d",&a); ss(d); } int ss(int d[]) {int a,i,j,k=1,s=0; for(int j=0;j<100;j++) { i=sqrt(d[j]); for(j=2;j<=i;j++) if(d[j]%j==0) {k=0;break;} if(k) s=s+d[j]; } printf("%d",s); }

漾濞彝族自治县18988751939: 【C语言】怎么输出一个一维数组以供其他程序使用? -
羽备低分: 这个简单啊 使用for循环2 for(i=0;i<10;i++) { printf("%d",a[i]);//输出数组10个数 }

漾濞彝族自治县18988751939: C语言编程系统如何自动生成一个一维数组 -
羽备低分: 程序主要通过malloc函数动态生成数组,srand和rand函数配合生成随机数据,代码如下, //程序功能,实现自定义m*n二维数组,随机生成给定范围max-min的数组元素 #include#include #include void main() { int i=0,j=0; int m=0,n=0;//数组维数 ...

漾濞彝族自治县18988751939: c语言编写程序实现求一维数组(8个元素)元素之和. -
羽备低分: 你的之所以报错,是由于你定义的数组int b[7].(可以操作b[0]-b[6]) 而你用for(;n<=7;n++) 的时候会出现scanf("%d",&b[7]); 这样就数组下标越界了..通过指针把求和函数的形参改为指针就可以了.int getSum(int *array,int endIndex){ int sum=0; for(int i=0;i<endIndex;i++){ sum+=array[i];} return sum; }

漾濞彝族自治县18988751939: C语言编程:编写一个求一维数组中各元素和的函数.
羽备低分: 给你个思路,将指针依次指向各个元素,定义个变量,存放元素和.

漾濞彝族自治县18988751939: 请用c语言,对10个元素的一维数组,编一个函数实现将其中最小的数与下标为1的元素交换位置.谢谢! -
羽备低分: void exchange(int *a) { int temp; for(int i=0;i<10;i++) if(a[1]>a[i]) { temp=a[1]; a[1]=a[i]; a[i]=temp; } }

漾濞彝族自治县18988751939: c语言编程:用数组名作函数参数,编写一个对一维数组求平均值的函数,并在主函数中调用它
羽备低分: int average(int *a,int n){if(n==0)return 0;int sum=0,i=0;for(i;i&lt;n;i++)sum+=a[i];return sum/n;}int main(){int arr[5]={1,2,3,4,5};printf("%d",sum(arr,5));return 0;}

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网