解题思路: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分
12 人评分
#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; }
IamLihl 2023-07-06 19:55:29 |
你的代码输出结果是这个:10 9 1 2 3 4 5 6 7 8 ,并不符合样例要求哦,函数里面的第二个for循环应该改成这样 for(int i=n-1;i>=0;i--) { a[i] = a[len+i]; }
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:400 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:583 |
核桃的数量 (C语言代码)浏览:726 |
星期判断机 (C语言代码)浏览:892 |
printf基础练习2 (C语言代码)浏览:547 |
演讲大赛评分 (C语言代码)浏览:1696 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2256 |
蛇行矩阵 (C语言代码)浏览:559 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:548 |
简单的a+b (C语言代码)浏览:531 |