C语言 冒泡排序 总结

源代码为:

// 冒泡排序.cpp : 定义控制台应用程序的入口点。

//

 

#include "stdafx.h"

#include <stdio.h>

#include <stdlib.h>

#define COUNT 6  //定义常量

int _tmain(int argc, _TCHAR* argv[])

{

     int score[COUNT]={0};

     int i=0;

     int k=0;

     int c=0;

     for(i=0;i<COUNT;i++)

     {

         do{

         printf("当前输入第%d成绩",i);

 

         c=scanf("%d",&score[i]);   //判断输入的值是否合法

         fflush(stdin);  //清除缓存

              //或者为rewind(stdin);

         }while(0==c);

     }

     for(i=0;i<COUNT;i++)

     {

         printf("score[%d]=%d/n",i,score[i]);

     }

     printf("/n-----------------------------/n");

     for(i=0;i<COUNT-1;i++)

     {

         for(k=0;k<COUNT-1-i;k++)

         {

              if(score[k]<score[k+1])

              {

                   int temp=0;

                   temp=score[k];

                   score[k]=score[k+1];

                   score[k+1]=temp;

              }

         }

     }

 

     for(i=0;i<COUNT;i++)

     {

         printf("score[%d]=%d/n",i,score[i]);

     }

 

     system("pause");

     return 0;

}

 

 

 

注意点:

1、  最好要定义常量(在修改数值时只需要修改一处即可)

2、  核心代码中比较数值的大小要注意每次比较的i次后的数值不用在比较。

3、  奇怪的问题:

1.         在验证输入的是否是数字时do一定要包含printf而且参数也要有内容不能为空。

2.         此问题的解答为:

                                                                   i.              只是没有提示用户printf信息,知道用户输入的是合法的数值才进行下一项。

                                                                 ii.              如果提示printf信息,我们可以很清楚的看到。

   4、  rewind(stdin)fflush(stdin)的区别。

a)    一般的应用效果是一样的。

b)    Rewind(stdin)是把指针指向头文件,相当于清空了缓存。

c)    Fflush(stdin)是直接清空缓存的。

   5、  &符号位置的放置。

a)    指针位置判断得出   如果加&则可认为是指针指向一个数值,如果前面是%s,这里则不用加&

b)    如果是%c也要加&  也表示为一个指针。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值