C语言:实现N个整数排序,并插入一个整数!

C语言是学习计算机基础,暑假一直在学Java,开学了数据结构上机,老师让编一个实现N个整数排序,

 

并插入一个整数的小程序,可是我整节课都没搞定。郁闷了许久,觉得自己太过舍本逐末了,基础都忘光了。

 

咳~~~~于是一阵恶补。好好看了看排序,总结及源码如下:

 

冒泡排序:

 

#include  " stdio.h "
main() 

int  i,j,temp,s; 
int  a[ 10 ]; 
printf(
" 请输入10个整数: " );
for (i = 0 ;i < 10 ;i ++
scanf (
" %d, " , & a[i]); 
for (j = 0 ;j <= 9 ;j ++
for  (i = 0 ;i < 10 - j;i ++
if  (a[i] > a[i + 1 ])
{ temp
= a[i]; 
a[i]
= a[i + 1 ]; 
a[i
+ 1 ] = temp;} 

printf(
" 冒泡排序后的数列为: " ); 
for (i = 0 ;i < 10 ;i ++
printf(
" %3d " ,a[i] ); 
printf(
" \n " ); 
scanf(
" %d " , & s); // 防止运行窗口迅速关闭

 

选择排序:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
#include "stdio.h"
void main()
{
 
int a[10];
 
int i,j,t,s;
 printf(
"请输入10个整数:");
 
for(i=0;i<10;i++)
 scanf(
"%d",&a[i]);
 printf(
"\n");
 
for(j=0;j<9;j++)
 
for(i=9;i>j;i--)
 
if(a[j]>a[i])
 {
  t
=a[j];
  a[j]
=a[i];
  a[i]
=t;
 }
 printf(
"选择排序后的数列为:"); 
 
for(i=0;i<10;i++)
 printf(
"%d  ",a[i]);
 printf(
"\n");
 scanf(
"%d",&s);//同上
}

 

实现N个整数排序,并插入一个整数源码:

 

#include  < stdio.h >
main(){
 
int  n;
 
int  a[ 100 ];
 
int  i,j,k,t,x,s;
 printf(
" 输入数列长度:\n " );
 scanf(
" %d " , & n);
 printf(
" 请输入%d个整数:\n " ,n);
 
for (i = 0 ;i < n;i ++ ){
  scanf(
" %d " , & a[i]);
 }
 
for (i = 0 ;i < n;i ++ ){ //  排序
  k = i;
  
for (j = i;j < n - 1 ;j ++ ){
   
if (a[k] > a[j + 1 ]){
    k
= j + 1 ;
   }
  }
  
if (k != i){
   t
= a[i];
   a[i]
= a[k];
   a[k]
= t;
  }
 }
 printf(
" \n " ); 
 printf(
" 排序后的数列:\n " );
 
for (i = 0 ;i < n;i ++ ){
  printf(
" %d  " ,a[i]); 
 }
 printf(
" \n " ); 
 printf(
" 请输入要插入的数: " );
 scanf(
" %d " , & x);
 
for (i = 0 ;i < n;i ++ ){
  
if (x > a[i] && x < a[i + 1 ]){
   k
= i + 1 ;
   
break ;
  }
 }
 
for (i = n;i > k;i -- ){
  a[i]
= a[i - 1 ];
 }
 a[k]
= x;
 printf(
" 插入%d后的排序数列为: " ,x);
 
for (i = 0 ;i <= n;i ++ ){
  printf(
" %d  " ,a[i]); 
 }
 scanf(
" %d " ,s);  // 同上
}

 

全部代码都测试通过,正确无误!

 

施杨出品!!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值