例题:用户输入一组数据,直到输入回车结束,且把数据放入数组中。要求:先对数组进行冒泡排序,输出结果;再提示用户”是否插入数据”,若要插入数据,则把插入的数据插入到数组中,且仍按顺序输出;最后求出最大值,和最小值,输出。
代码如下:
#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语言编程>第六周 ⑧ 编写程序,实现魔方阵。
越努力越幸运!
加油,奥力给!!!