原题链接:[编程入门]自定义函数之数字后移
解题思路:1.输入和输出的函数定义的形参为整形指针类型变量而不是返回值(void)
2.fun()函数定义:定义两个数组(数组长度在主函数中定义并且使用的也是主函数中定义的函数),在功能函数中,现将a[]错位后的情况赋给b[](用for循环)(如果错位赋值的话会将错位的位数在数组前段体现),然后使用一个for循环,即将b数组中对于超出a数组长度的数组数值再赋值到b数组错位的地方。
3.输入数据是输入到a数组。输出数据是输出b数组的值
参考代码:
#include <stdio.h>
void input(int* a,int n);
void output(int* a,int n);
void fun(int* a,int* b,int cout,int n);
int main(void)
{
int a[100],b[100],num,cout;
scanf("%d",&num);
input(a,num);
scanf("%d",&cout);
fun(a,b,cout,num);
output(b,num);
return 0;
}
void input(int* a,int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
}
void fun(int* a,int* b,int cout,int n)
{
int i;
for(i=0;i<(n+cout);i++)
{
b[i+cout]=a[i];
}
for(i=0;i<cout;i++)
{
b[i]=b[i+n];
}
}
void output(int* a,int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}0.0分
11 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
@paid猫 你的代码输出结果是这个:10 9 1 2 3 4 5 6 7 8 ,并不符合样例要求哦,函数里面的第二个for循环应该改成这样 for(int i=n-1;i>=0;i--) { a[i] = a[len+i]; }#include<stdio.h> void find( int *a , int n , int len) { int i , j , temp; for( i = len + n - 1; i >= n ; i--) { a[i] = a[i -n]; } for( i = 0 ; i < n ; i++) { a[i] = a[len+n-i-1]; } } int main() { int i , n , j ,num; int a[100]; printf("put:n\n"); scanf("%d",&n); printf("put a\n"); for( i = 0 ; i < n ; i++ ) scanf("%d",&a[i]); printf("put , num\n"); scanf("%d",&num); find(a , num , n); for( i = 0 ; i < n ; i++ ) printf("%d ",a[i]); return 0; }