C语言编程>第六周 ② 用户输入一组数据,直到输入回车结束,且把数据放入数组中。要求先对数组进行冒泡排序,输出结果;再提示用户”是否插入数据”, 若要插入数据,则把插入的数据插入到数组中……

173 阅读3分钟

例题:用户输入一组数据,直到输入回车结束,且把数据放入数组中。要求:先对数组进行冒泡排序,输出结果;再提示用户”是否插入数据”,若要插入数据,则把插入的数据插入到数组中,且仍按顺序输出;最后求出最大值,和最小值,输出。

代码如下:

#include <stdio.h>                   //预处理语句
#define N 5                          //定义一个符号常量
int main()                          //主函数
{
	int i,j,a[N+1];                      //声明一个一维数组 
	int d,s,max,min;             //程序所需变量声明
	char ss='y';                     //用于是否结束程序的变量
	printf("请为数组输入数据\n");
	for (i=0;i<N;i++)                //给数组输入数据
	{
	   	scanf("%d",&a[i]);
	}
	for(i=0;i<N;i++)                //控制外部循环次数
	{
	   for (j=0;j<N-i-1;j++)        //控制内部循环次数
	   { 
	    	if (a[j]>a[j+1])
		    {                        //交换元素
		        d=a[j+1];
		     	a[j+1]=a[j];
		     	a[j]=d;
		    }
	    }
	}
	printf("升序输出数组的值:");//把数组按升序显示输出
	for (i=0;i<N;i++)
	{
	    printf("%-5d",a[i]);
	}
	printf("\n");
	printf("\n你是否想插入一个数据?(y/n)"); //输入提示
	fflush(stdin);                           //清空键盘缓存
	ss=getchar();                            //从键盘上接收一个字符
	if (ss=='y'|| ss=='Y')                   //判断是否继续执行程序
	{
	   printf("\n请输入一个想要插入的数:"); //输入提示
	   scanf("%d",&s);                      //输入语句
	   for (i=0;i<N;i++)                    //查找第一个大于要插入数的位置
	   {
	    if(a[i]>s)
	    {
	     	break;
	    }
	   }
	   for (j=N;j>i;j--)                    //为插入的数留出位置
	   {
	    	a[j]=a[j-1];
	   }
	   a[i]=s;                              //把插入的数放到数组中
	   printf("\n插入后的数组元素:\n");
	   for (i=0;i<N+1;i++)
	   {
	    	printf("%d\t\n",a[i]);           //显示插入后的数组元素
	   }
	   max=a[0];                            //最大值初始化
	   min=a[0];                            //最小值初始化
	   for (i=1;i<N+1;i++)                  //B控制循环次数
	   {
		    //判断最大值
		    if (max<a[i])
		    {
		     	max=a[i];
		    }
		       //判断最小值
		    if (min>a[i])
		    {
		    	min=a[i];
		    }
	    }
	   printf("最大值为:%d\n",max);           //输出最大值
	   printf("最小值为:%d\n",min);           //输出最小值
	}
	else 
	{
	   printf("程序结束!\n");
	}
}

输出运行窗口如下:
在这里插入图片描述
本周其他练习

C语言程序设计专栏

C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

C语言编程>第六周 ② 用户输入一组数据,直到输入回车结束,且把数据放入数组中。要求:先对数组进行冒泡排序,输出结果;再提示用户”是否插入数据”,若要插入数据,则把插入的数据插入到数组中,且仍按顺序输出;最后求出最大值,和最小值,输出。

C语言编程>第六周 ③ 在邮政系统中,收费是这样规定的,当邮包重量<=10公斤时,按每公斤0.25元收费;如果超过10公斤时,超过部分按0.34元收费,其余部分按0.25元收费。现要求用户输入邮包重量,请输出应付的邮资。

C语言编程>第六周 ④ 聚会时规定:男生,超过18岁可以喝酒,没有超过18岁时,喝饮料;女生,超过20岁时,可以喝酒,没有超过20岁时,喝饮料;请输入学生性别和学生的年龄,并根据输入的情况来判断喝什么!

C语言编程>第六周 ⑤ 北大青鸟要求:在推荐就业时,按以下几个标准来衡量
1):项目个数在5个以内:不能推荐就业
2):项目个数在6到10个以内:只能推荐重庆市内的小公司
3):项目个数在11到20个以内:可以推荐重庆市内的任何公司
4):项目个数在20个以上:可能进外企

C语言编程>第六周 ⑥ 输入一串字符,统计大大写字母的个数,并强调统计必须用函数。

C语言编程>第六周 ⑦ 编写一个程序用于创建一格结构BOOK,用来储存书的信息:书名,作者姓名,页数和价格,接受输入和输出 。

C语言编程>第六周 ⑧ 编写程序,实现魔方阵。

越努力越幸运!
加油,奥力给!!!