并输出新的完整数列。进行逆序处理时要求使用指针方法(例如:原数列为2,4,6,8,10,12,14,16,18,20,m=4, n=5,即要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20。)输入10个整数和m, n;输出新的数组,数组元素之间以空格分隔。主函数如下:#include <stdio.h>void method(int m,int n,int *a);int main(){ int a[10]; int i, m, n; for ( i=0; i<10; i++ ) scanf("%d", &a[i] ); scanf( "%d%d", &m, &n ); method(m,n,a); for( i=0;i<10;i++ ) printf( "%d ", a[i] );}已经写好了一个程序,可以实现将逆序部分赋给一个指针型字符串*b,但是*b没有成功赋给*a不懂为什么,请大神帮帮我,看要怎么改一下,因为我刚学了一点指针,实在不知道怎么办了,谢谢。
你的*b没有成功赋给*a,可能是类型不匹配,因为*b是指针型字符串,而不是int型指针,我给你写了一个正确的用指针的程序,直接在数组*a上操作即可,你可以对照着看一下.
按照题目要求编写的C语言程序如下(其中有题目要求的用指针的method函数)
#include<stdio.h>运行结果
追问说错了,我定义的指针*b是整数型,这是我完整的代码
void method(int m, int n, int *a)
{
int j = m + n - 2;
int *b = (a + j);
while (j >= m - 1)
{
j--;
b = (a + j);
}
for (j = 1; j < m; j++)
a++;
for (j = m; j < m + n; j++)
{
a = b;
a++;
b++;
}
}
你的C语言逆序程序,我帮你改好了,你看看吧(改动的地方见注释)
#include<stdio.h>