#include<stdio.h>
int main()
{
int i,a[9];
int opcate,zi;
for(i=0;i<9;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
printf("%d ",a[i]);
printf("\n");
printf("请输入位置与数字:");
scanf("%d%d",&opcate,&zi);
for(i=1;i<10-opcate;i++)
{
a[10-i]=a[9-i];
}
a[opcate]=zi;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
#include <stdio.h> #define SIZE 10 void array_show(int arr[] , int len); void array_insert(int arr[] ,int len, int index,int val); int main() { int arr[SIZE]; int i; int opcate,val; printf("请输入%d个数组元素",SIZE-1); for(i=0;i<SIZE-1;++i) scanf("%d",arr+i); printf("数组元素如下:\n"); array_show(arr,SIZE-1); printf("输入插入的索引,和插入的数值"); scanf("%d %d",&opcate,&val); array_insert(arr,SIZE,opcate,val); printf("数组元素如下:\n"); array_show(arr,SIZE); return 0; } // 打印数组 void array_show(int arr[] , int len) { for(int i=0;i<len ;++i ) { printf("%d\t",arr[i]); } printf("\n"); } //在数组的索引为index 的地方插入值:val void array_insert(int arr[] ,int len, int index,int val) { for(int i=len-1;i>index;--i) { arr[i] = arr[i-1]; } arr[index] = val; }
1、善于使用函数,将问题拆分去做,不要全部逻辑都一股脑的写在main里面。一个大馒头,一次啃一口好,还是一口全吞下好?
2、素组的大小是固定的,你定义了9个容量,不会因为插入一个就增大为10 了,所以你应该预先留一个位置。或者使用动态数组。
谢谢,我懂了!!!