c語言數組插入數據
Ⅰ c語言 將一個數插入一個數組
下面是改好的,具體請看注釋:
#include<stdio.h>
int main()
{
int a[11]={1,3,5,15,36,37,58,79,80,95},i,t1,t2;
int j;//這里!這里!這里!這里!需要新定義一個變數來控制數組元素的後移
printf("Previous is:\n");
for(i=0;i<=9;i++)
printf("%5d",a[i]);
printf("\nPlease input a number:");
scanf("%d",&t1);
printf("\nNow is:\n");
for(i=0;i<=9;i++)
{
if(a[i]>t1)
{
for(j=10;j>i;j--) //這里!這里褲清!這里!這里!
{
a[j]=a[j-1];//這里!這里!這里!這里!
}
a[i] = t1;
break; //這里!橘液這里!這里!這里!放錯位置了,應該圓純物在裡面
}
}
for(i=0;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
Ⅱ C語言數組插入一個數據的問題
您好,很高興回答您的問題。
break是在遇到判斷條件為真時才執行。這里是當遇到第一個比輸入的數大的時候,就用break結束循環,目的就是找到了需要存放這個後來輸入的數據的位置。後面的for循環就是將之前找到的位置及之後的數據全部往後挪一位,然後再把新輸入的數據放到這個位置上。
不過您程序中給的原始數列也不是排好序的數哦,所以輸入數據排序好像不太具有說服力哦。
Ⅲ c語言用指針給數組排序和插入
#include<stdio.h>
#definesize8//元素數組元素個數
intmain()
{
inti,nums[size]={13,27,38,49,65,76,97},n,index,*p=&nums[size-1];
printf("原數組:");
for(i=0;i<size-1;i++)
printf("%d",nums[i]);
printf("
輸入要插入的數字:");
scanf("%d",&n);
printf("輸入要插入在第幾個數字後面:");
scanf("%d",&index);
while(p>&nums[index])
{
*p=*(p-1);
p--;
}
*p=n;
printf("插入後的數組:");
for(i=0;i<size;i++)
printf("%d",nums[i]);
return0;
}