C语言趣味课堂练习之八
2017-11-20杨英翔
杨英翔
摘 要:作者多年从事计算机应用技术研究和教学,在C语言程序设计的教学过程中,作者一直在探索激发学生学习兴趣、降低课程难度、提高学习成绩的有效途径,并提出自己的一些做法供同行们参考。
关键词:C语言;教法;计算机
1 选择排序法排序
程序说明:
这个程序里我们经常提到的”选择排序法”,是C语言里很典型的一道题,讲解这道题的重点应该放在算法分析上。
练习方法:
(1).程序原型:
#include
#include
#include
#include
main()
{
system(“color 2f”);
system(“title ---选择排序法");
system(“mode con cols=130 lines=40”);
int m[256],i,j,t,k,s;
printf(“\n\n 输入10个数:\n\n ");
for(i=0;i<10;i++)
{
scanf(“%d”,&m[i]);
}
printf(“\n您输入的数组—————\n");
for(i=0;i<10;i++)
{
printf(“%5d”,m[i]);
}
for(i=0;i<9;i++)
{
t=i;
for(j=i+1;j<=9;j++)
{
if(m[t]>m[j])
t=j;
}
s=m[t];
m[t]=m[i];
m[i]=s;
}
printf(“\n\n排序后的数组—————\n");
for(k=0;k<10;k++)
printf(“%5d”,m[k]);
printf(“\n\n”);
getchar();
}
(2).参考程序:
演示选择排序法:
#include
#include
#include
#include
main()
{
system(“color 2f”);
system(“title ---选择排序法");
system(“mode con cols=130 lines=40”);
int m[256],i,j,t,k,s;
printf(“\n\n 输入10个数:\n\n ");
for(i=0;i<10;i++)
{
scanf(“%d”,&m[i]);
}
printf(“\n您输入的数组—————\n");
for(i=0;i<10;i++)
{
printf(“%5d”,m[i]);
}
printf(“\n现在开始选择排序—————\n");
for(i=0;i<9;i++)
{
printf(“\n第 %d 趟——————\n",i+1);
t=i;
for(j=i+1;j<=9;j++)
{
if(m[t]>m[j])
t=j;
}
s=m[t];
m[t]=m[i];
m[i]=s;
for(k=0;k<10;k++)
{
printf(“%5d”,m[k]);
}
printf(“\n”);
system(“pause”);
}
printf(“\n\n排序后的数组—————\n");
for(k=0;k<10;k++)
printf(“%5d”,m[k]);
printf(“\n\n”);
getchar();
}
后记:
这个程序和冒泡排序法一样,都要认真做算法分析,教师需要认真组织语言,激发学生学习兴趣,调动学生学习积极性。
2 解方程
一個整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少??
程序说明:
这个题目里我们使用了嵌套循环和goto语句。
这个题目可以用多个算法,程序原型里的算法属于暴力破解法,又叫穷举法。
练习方法:
(1).程序原型:
#include
#include
#include
#include