当前位置:首页 » 编程语言 » c语言顺序程序设计

c语言顺序程序设计

发布时间: 2024-09-10 09:19:19

c语言简单顺序程序设计原理是什么

什么顺序程序啊?是
(1)顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如;a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等

② 设计C语言程序,用一维数组输入N个整数,将这n个整数按从大到小排列

给你看看C语言的三种排序方法吧,这是我们老师给总结的,你看懂后就自己在写这个程序吧!

一、冒泡法(起泡法)
算法要求:用起泡法对10个整数按升序排序。
算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。
算法源代码:
# include <stdio.h>
main()
{
int a[10],i,j,t;
printf("Please input 10 numbers: ");
/*输入源数据*/
for(i=0;i<10;i++)
scanf("%d",&a[i]);
/*排序*/
for(j=0;j<9;j++) /*外循环控制排序趟数,n个数排n-1趟*/
for(i=0;i<9-j;i++) /*内循环每趟比较的次数,第j趟比较n-j次*/
if(a[i]>a[i+1]) /*相邻元素比较,逆序则交换*/
{ t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
/*输出排序结果*/
printf("The sorted numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
算法特点:相邻元素两两比较,每趟将最值沉底即可确定一个数在结果的位置,确定元素位置的顺序是从后往前,其余元素可能作相对位置的调整。可以进行升序或降序排序。
二、选择法
算法要求:用选择法对10个整数按降序排序。
算法分析:每趟选出一个最值和无序序列的第一个数交换,n个数共选n-1趟。第i趟假设i为最值下标,然后将最值和i+1至最后一个数比较,找出最值的下标,若最值下标不为初设值,则将最值元素和下标为i的元素交换。
算法源代码:
# include <stdio.h>
main()
{
int a[10],i,j,k,t,n=10;
printf("Please input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++) /*外循环控制趟数,n个数选n-1趟*/
{
k=i; /*假设当前趟的第一个数为最值,记在k中 */
for(j=i+1;j<n;j++) /*从下一个数到最后一个数之间找最值*/
if(a[k]<a[j]) /*若其后有比最值更大的*/
k=j; /*则将其下标记在k中*/
if(k!=i) /*若k不为最初的i值,说明在其后找到比其更大的数*/
{ t=a[k]; a[k]=a[i]; a[i]=t; } /*则交换最值和当前序列的第一个数*/
}
printf("The sorted numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
算法特点:每趟是选出一个最值确定其在结果序列中的位置,确定元素的位置是从前往后,而每趟最多进行一次交换,其余元素的相对位置不变。可进行降序排序或升序排序。
三、插入法
算法要求:用插入排序法对10个整数进行降序排序。
算法分析:将序列分为有序序列和无序列,依次从无序序列中取出元素值插入到有序序列的合适位置。初始是有序序列中只有第一个数,其余n-1个数组成无序序列,则n个数需进n-1次插入。寻找在有序序列中插入位置可以从有序序列的最后一个数往前找,在未找到插入点之前可以同时向后移动元素,为插入元素准备空间。
算法源代码:
# include <stdio.h>
main()
{
int a[10],i,j,t;
printf("Please input 10 numbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++) /*外循环控制趟数,n个数从第2个数开始到最后共进行n-1次插入*/
{
t=a[i]; /*将待插入数暂存于变量t中*/
for( j=i-1 ; j>=0 && t>a[j] ; j-- ) /*在有序序列(下标0 ~ i-1)中寻找插入位置*/
a[j+1]=a[j]; /*若未找到插入位置,则当前元素后移一个位置*/
a[j+1]=t; /*找到插入位置,完成插入*/
}
printf("The sorted numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
算法特点:每趟从无序序列中取出第一个数插入到有序序列的合适位置,元素的最终位置在最后一趟插入后才能确定位置。也可是先用循环查找插入位置(可从前往后或从后往前),再将插入位置之后的元素(有序列中)逐个后移一个位置,最后完成插入。该算法的特点是在寻找插入位置的同时完成元素的移动。因为元素的移动必须从后往前,则可将两个操作结合在一起完成,提高算法效率。仍可进行升序或降序排序。

这应该会对你很有用的,好好学,把它弄懂!祝你好运!

③ C语言中用于结构化程序设计的三种基本结构是

三种基本结构为顺序结构,选择结构和循环结构。

1、顺序结构

顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。

大多数C语言语句都是顺序结构的, 按照代码的先后顺序执行。

比如

inta;
a=5;
printf("%d",a);

这个代码就是先定义a,然后赋值,最后输出,严格按照代码的顺序进行执行。

2、选择结构

选择结构表示程序的处理步骤出现了分支,需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。

在C语言中,选择结构有两种实现方法, 一种是if-else语句,另一种为switch-case语句。

3、循环结构

循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。循环结构的基本形式有两种:当型循环和直到型循环。

当型循环:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。因为是"当条件满足时执行循环",即先判断后执行,所以称为当型循环。

直到型循环:表示从结构入口处直接执行循环体,在循环终端处判断条件,如果条件不满足,返回入口处继续执行循环体,直到条件为真时再退出循环到达流程出口处,是先执行后判断。因为是"直到条件为真时为止",所以称为直到型循环。

在C语言中,循环有for循环,while循环,和do...while三种常见的循环。

另外还可以用goto语句构建循环,但并不推荐使用。

④ 如何用C语言设计程序排列6个数字的大小顺序

排序数组可以使用冒泡算法:如果前一个数据比后一个大,则交换。

{

int i,j,t,a[6];

printf("Please input 6 integers: ");

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

scanf("%d",&a[i]);

for(i=0;i<5;i++) /* 冒泡法排序 */

for(j=0;j<6-i-1;j++)

if(a[j]>a[j+1])

{t=a[j];/* 交换a[i]和a[j] */

a[j]=a[j+1];

a[j+1]=t;

}

优点:

简洁紧凑、灵活方便:C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

以上内容参考:网络-c语言程序设计

⑤ 濡备綍鐢╟璇瑷缂栧啓涓涓绋嫔簭锛屽疄鐜版寜浠庡ぇ鍒板皬镄勯‘搴忔帓搴忚緭鍑10涓鏁

鐢ㄩ夋嫨鎺掑簭娉旷紪鍐檆璇瑷锛屽疄鐜颁粠阌鐩树笂杈揿叆10涓鏁帮纴鎸変粠澶у埌灏忕殑椤哄簭鎺掑簭杈揿嚭銆备唬镰佸备笅锛

#include<stdio.h>

int main()

{

int i,j,a[10],t;

printf("杈揿叆鏁");

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

scanf("%d",&a[i]);

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

{

for (j = i + 1; j < 10;j++)

if (a[i] < a[j]){

t = a[i];

a[i] = a[j];

a[j] = t;

}

}

printf("浠庡ぇ鍒板皬");

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

printf("%2d", a[i]);

return 0;

}

镓╁𪾢璧勬枡锛

浠g爜杩桦彲浠ヨ捐★纴濡备笅锛

#include<stdio.h>

int main()

{

int a[10],i,j,t;//瀹氢箟鏁扮粍;

for(i=0;i<10;i++){

scanf("%d",&a[i]);//缁欐暟缁勮祴鍊;

}

for(i=0;i<9;i++)//10涓鏁帮纴杩涜9杞姣旇缉;

for(j=0;j<10-i;j++){//绗涓涓鏁版瘆杈9娆★纴渚濇¢掑噺;

if(a[j]>a[j+1]) {//浜ゆ崲鍊;

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

for(i=0;i<10;i++){

printf("%d ",a[i]);//杈揿嚭鏁扮粍镄勫;

}

return 0;

}

}

printf("the sorted numbers: ");

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

printf(" %d",a[i]);

printf(" ");

}

鍙傝冭祫鏂欙细锏惧害锏剧-printf

热点内容
xpsql2000 发布:2024-11-25 05:20:20 浏览:371
如何设置安卓上拉菜单 发布:2024-11-25 05:20:12 浏览:4
为什么安卓手机做不出透明相框 发布:2024-11-25 05:13:52 浏览:491
间接结算法 发布:2024-11-25 05:12:08 浏览:759
java咖啡机 发布:2024-11-25 05:12:05 浏览:489
小白主机怎么配置 发布:2024-11-25 05:10:33 浏览:144
automator脚本 发布:2024-11-25 04:41:18 浏览:310
敲背面截图怎么弄安卓 发布:2024-11-25 04:39:18 浏览:809
安卓机关机如何设置快捷方式 发布:2024-11-25 04:16:02 浏览:636
安卓绿联和倍思哪个品牌好 发布:2024-11-25 03:54:45 浏览:890