
①for(表达式1;表达式2;表达式3){循环体}
表达式1,是初始化条件,如i=0。
表达式2,循环条件,满足就继续执行循环体,不满足就跳出循环。
表达式3,这个一般是改变循环条件的地方,如i++。
参考代码:
#include<stdioh>
int main()//for循环计算1到10累加和
{
int i,sum=0;
for (i=0;i<=10;i++)
sum+=i;
printf("%d\n",sum);
return 0;
}
/
运行结果:
55
/
②while(表达式){循环体}
表达式的值为真(非0)时,
执行循环体语句。
参考代码:
#include<stdioh>
int main()//while循环计算1到10累加和
{
int i,sum=0;
while(i<=10) {
sum+=i;
i++;
}
printf("%d\n",sum);
return 0;
}
/
运行结果:
55
/
③ do{循环体} while(表达式);
先执行循环中的语句,然后再判断表达式是否为真,
如果为真则继续循环;否则,
则终止循环。
参考代码:
#include<stdioh>
int main()//do……while循环计算1到10累加和
{
int i,sum=0;
do{
sum+=i;
i++;
} while(i<=10);
printf("%d\n",sum);
return 0;
}
/
运行结果:
55
/
利用循环结构编程序求1+2+3+······+n的和并输出,其中n由键盘输入 #include "stdioh"
void main()
{
int n,s,i;
s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
s+=i;
printf("%d\n",s);
}
编程:请分别用do while、while两种循环结构编程计算: 1!+2!+3!++n! , n的值由键盘输入。
#include<stdioh>
int fun(int a)
{
int i=1,sum=1;
while(i<=a)
{
sum=i;
i++;
}
return sum;
}
main()
{
int n,i=1,sum=0;
printf("请输入n的值:");
scanf("%d",&n);
while(i<=n)
{
sum+=fun(i);
i++;
}
printf("结果是:%d",sum);
}
这是while循环。do while就自己改造了。
C语言:请分别用三种循环结构编程计算: 1!+2!+3!++n! , n的值由键盘输入。
C语言#include<stdioh>
void main()
{
int n=1,i,sum=0,num=1;
do
{
num=1;
for(i=n;i>0;i--)
num=i;
sum=sum+num;
n++;
} while(n<=10);
printf("(1->10)! is %d\n",sum);
}
C++编写#include<iostream>
using namespace std;
void main()
{
int n=1,i,sum=0,num=1;
while(n<=10)
{
num=1;
for(i=n;i>0;i--)
num=i;
sum+=num;
n++;
}
cout<<sum<<endl;
}
vf 编程 利用子程序求1+1/2+1/3+1/n的值,其中n由键盘输入
input "请输入N" to n
s=0
for i=1 to n
s=s+1/n
endfor
求编程,谢谢。 由键盘输入N,编程求M=N! 其中N=123N
程序的实现的是这样的,先设置一个文本框,用于n值的出入。再设置一个命令按钮用于求解。代码如下:
Private Sub Command1_Click()
Dim n As Integer, i As Integer, m As Double
m = 1
n = CInt(Text1Text)
If n <= 0 Then
Text1Text = "0"
Else
For i = 1 To n
m = m i
Next i
Text1Text = m
End If
End Sub
程序又经过本人调试,程序正常。
编程计算s=1234N(N由键盘输入(1-9)(用汇编程序)
汇编和C++不一样的
首先中断读入数字
然后用LOOP循环累乘,输出结果
利用c语言编程:求1!/1+2!/(1+2)+3!/(1+2+3)+……+n!/(1+2+3+……+n)的值,其中n由键盘输入
#include<stdioh>void main(){ int i,n,he=0,ji=1; double sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { he+=i; ji=i; sum+=(double)ji/he; } printf("%lf\n",sum);}
C语言编程题:S=1!+2!+3!+4!+5!+…+n! n由键盘输入 求循环过程
这是我们以前做过的课后习题 #include<stdioh> void main() { int n,i; float s=0,t=1; scanf("%d",&n); for(i=1;i<=n;i++) { t=i; s+=t; } printf("1+2!+3!+n!=%f\n",s); }
编程求n!,n由键盘输入
这是之前用C 写过的
#include<stdioh>
#include<memoryh>main(){int f[10000],a[10000],i,j,k,t,n;while(scanf("%d",&n)!=EOF){memset(f,0,sizeof(f));f[0]=1;for(i=1;i<n+1;i++){memset(a,0,sizeof(a)); for(t=0;t<10000;t++){ f[t]=i;if(t!=0) f[t]+=a[t-1]; a[t]=f[t]/10;f[t]%=10;}}for(i=9999;i>=0;i--){if(f[i]!=0){k=i;break;}}for(i=k;i>=0;i--){printf("%d",f[i]);}printf("\n");}}
等下补上一个用Java 写的
表示一个数字,使用科学计数法。如500表示IntegerString(5,2)
public class IntegerString { private int number = 0;数字 private int length = 0;10的length次方 / Creates a new instance of IntegerString / public IntegerString(int number,int length) { thisnumber = number; thislength = length; } public int getNumber(){ return thisnumber; } public int getLength(){ return thislength; }}
/
两个数相乘,结果用两个数来表示,一个是高位,一个是低位
/
public class MultiplyResult { private IntegerString high; private IntegerString low; / Creates a new instance of MultiplyResult / public MultiplyResult(IntegerString a,IntegerString b) { int result = agetNumber()bgetNumber(); int length = agetLength()+bgetLength(); if(result>=10){ high = new IntegerString(result/10,length+1); low = new IntegerString(result%10,length); }else{ high = new IntegerString(result,length); low = new IntegerString(0,length-1); } } public String toString(){ 打印方便,以便调试 StringBuffer = new StringBuffer(); append(highgetNumber()); append(lowgetNumber()); for(int i=0;i<lowgetLength();i++) append("0"); return toString(); } public IntegerString getHigh(){ return high; } public IntegerString getLow(){ return low; } }
public class Factorial{
由大到小,由高到低,将一个字符的数表示成科学计数法private IntegerString[] getIntegerString(String str){ IntegerString[] is = new IntegerString[strlength()]; for(int i=0;i<strlength();i++){ char ch = strcharAt(i); int number = CharactergetNumericValue(ch); is[i] = new IntegerString(number,strlength()-1-i); } return is;}
获得数的最高位 private int getMaxLength(IntegerString[] a){ int max = 0; for(int i=0;i<alength;i++){ if(a[i]getLength()>max) max = a[i]getLength(); } return max; }
一个数与单个数字相乘 private IntegerString[] singleMultiply(IntegerString[] old,IntegerString gene){ MultiplyResult[] mr = new MultiplyResult[oldlength]; for(int i=0;i<oldlength;i++){ mr[oldlength-1-i] = new MultiplyResult(old[i],gene); Systemoutprintln(mr[oldlength-1-i]); } mr是从最低位到最高位 javautilArrayList arrays = new javautilArrayList(); int carry = 0; int maxLength = mr[mrlength-1]getHigh()getLength(); 获得最高位的长度 for(int i=0;i<=maxLength;i++){从个位到最高位一次加,如果有进位,那么存放到carry中 int number = carry; for(int j=0;j<mrlength;j++){ if(mr[j]getLow()getLength()==i) { number+=mr[j]getLow()getNumber(); } if(mr[j]getHigh()getLength()==i){ number+=mr[j]getHigh()getNumber(); } } if(number>=10){ 如果有进位,取余数,如果没有,取本身 arraysadd(new IntegerString(number%10,i)); carry=1; }else{ arraysadd(new IntegerString(number,i)); carry=0; } } if(carry==1){ 如果还有进位,那么加入到最高位 arraysadd(new IntegerString(carry,maxLength+1)); } IntegerString[] results = new IntegerString[arrayssize()]; javautilIterator ii = arraysiterator(); int index=0; while(iihasNext()){ results[index++] = (IntegerString)iinext(); } return results; }
private void print(IntegerString[] a){ Systemoutprintln(getNumberic(a)); } 将数字由IntegerString[]数组转换成字符串 private String getNumberic(IntegerString[] a){ StringBuffer = new StringBuffer(); int max = getMaxLength(a); for(int i=0;i<=max;i++){ boolean isFind = false; for(int j=0;j<alength;j++){ if(a[j]getLength()==i){ insert(0,a[j]getNumber()); isFind = true; break; } } if(!isFind){ insert(0,0); } } return toString(); }
两个数相加 private IntegerString[] add(IntegerString[] a,IntegerString[] b){ if(a==null) return b; if(b==null) return a; javautilArrayList arrays = new javautilArrayList(); int aMax = getMaxLength(a); int bMax = getMaxLength(b); int max = aMax>bMaxaMax:bMax; int carry = 0; for(int i=0;i<=max;i++){ for(int j1=0;j1<alength;j1++){ if(a[j1]getLength()==i) carry+=a[j1]getNumber(); } for(int j2=0;j2<blength;j2++){ if(b[j2]getLength()==i) carry+=b[j2]getNumber(); } if(carry>0){ if(carry>=10){ arraysadd(new IntegerString(carry%10,i)); carry=1; if(i==max){ arraysadd(new IntegerString(carry,i+1)); } }else{ arraysadd(new IntegerString(carry,i)); carry=0; } }else{ arraysadd(new IntegerString(0,i)); carry=0; } } IntegerString[] results = new IntegerString[arrayssize()]; javautilIterator ii = arraysiterator(); int index=0; while(iihasNext()){ results[index++] = (IntegerString)iinext(); } return results; }
两个数相乘
private String stringMultiply(String a,String b){ IntegerString[] ais = thisgetIntegerString(a); IntegerString[] bis = thisgetIntegerString(b); IntegerString[] result = null; for(int i=0;i<bislength;i++){ IntegerString[] tmp = thissingleMultiply(ais,bis[i]); result = add(result,tmp); } return thisgetNumberic(result); }
打印N的阶乘
public void printFactorial(int n){
String total = "1"; int n=100; for(int i=1;i<=n;i++){ total = stringMultiply(i+"",total); }
Systemoutprintln(total);
}
}
编程计算1!+3!+5!+…+(2N-1)!的值,其中N值由键盘输入
int fun(int n)
{
int mult = 1;
while(n >= 1)
{
mult = mult n;
n--;
}
return mult;
}
void main()
{
int sum = 0;
int i;
int n;
scanf("%d",&n);
for(i = 1;i <= 2n-1; i = i + 2)
{
sum = sum + fun(n);
}
printf("%d",sum);
}
顺序结构,选择结构,循环结构。
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
C语言的顺序结构:顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
C语言的选择结构:选择程序结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。使用选择结构语句时,要用条件表达式来描述条件。
C语言的循环结构 :循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构 。循环结构可以看成是一个条件判断语句和一个向回转向语句的组合。
这三种最基本的结构组成了现在计算机五花八门的各种应用程序是每个学习C语言的入门课程也是必须牢牢掌握不能有任何不明白的基本结构,掌握了着几个基本结构就可以进入C语言世界常有无阻了。
循环结构
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。
中文名
循环结构
外文名
loop structure
减少
源程序重复书写的工作量
描述
重复执行某段算法的问题
利用
判断框来表示
快速
导航
C语言中的循环语句
常见的两种循环结构
结构简介
循环结构可以看成是一个条件判断语句和一个向回转向语句的组合。另外,循环结构的三个要素:循环变量、循环体和循环终止条件 ,循环结构在程序框图中是利用判断框来表示,判断框内写上条件,两个出口分别对应着条件成立和条件不成立时所执行的不同指令,其中一个要指向循环体,然后再从循环体回到判断框的入口处
C语言中的循环语句
三个循环
C语言中提供四种循环,即goto循环、while循环、do…while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用。这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。
三个循环异同点
在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的 *** 作应在循环体之前,而for循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体;而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,我们均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序。但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。
模块化程序结构C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写。因此常说:C程序=主函数+子函数。 因此,对函数的定义、调用、值的返回等要尤其注重理解和应用,并通过上机调试加以巩固。
当条件成立的时候,执行循环体的代码,当条件不成立的时候,跳出循环,执行循环结构后面的代码。 循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构 。循环结构可以看成是一个条件判断语句和一个向回转向语句的组合。另外,循环结构的三个要素:循环变量、循环体和循环终止条件。循环结构在程序框图中是利用判断框来表示,判断框内写上条件,两个出口分别对应着条件成立和条件不成立时所执行的不同指令,其中一个要指向循环体,然后再从循环体回到判断框的入口处。
void main()
{
int num=0,sum1=0,sum2=0,sum3=0;
printf("请输入一个正整数\n");
scanf("%d",&num);
int i=0;
while (i<=num)//满足条件就执行{}内的代码,先判断再执行
{
sum1+=i;
i++;
}
printf("while循环:从0到%d累加和为%d\n",num,sum1);
i=0;
do
{
sum2+=i;
i++;
} while (i<=num);//一直做do内的代码,只要满足while条件就会继续做do,先执行再判断
printf("do-while循环:从0到%d累加和为%d\n",num,sum2);
for (i=0;i<=num;i++)//满足for中间的条件(这里是i<=num)就执行{}内的代码
{
sum3+=i;
}
printf("for循环:从0到%d累加和为%d\n",num,sum3);
getchar();//暂停程序,查看输出结果(VC6不需要这行代码)
}void main()
{
double y=0;
for (int i=1;i<=31;i=i+2)
{
double temp=i;//将i转换为double
y+=1/temp;
}
printf("y=%lf",y);
getchar();//暂停程序,查看输出结果(VC6不需要这行代码)
}
计算机程序的三种基本结构是:顺序结构、分支结构、循环结构
1、顺序结构:
顺序结构是一个程序从第一行一直运行到最后一行,也就是程序从头到尾运行。
2、分支结构:
分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
3、循环结构:
一般用于重复某段需要不断重复执行的代码。
共同特点:
① 三种结构都是只有一个入口,一个出口。
② 三种结构内都不存在死循环。
程序的基本结构有三种分别是顺序结构、选择结构和循环结构。
顺序结构:程序按照代码的先后顺序执行,没有任何跳转或判断。
选择结构:程序根据某些条件判断,选择不同的执行路径。常见的条件语句有 if、switch。
循环结构:程序会多次执行同一段代码,直到满足某个条件才退出循环。常见的循环语句有 while、do-while、for。
顺序结构是程序设计中的一种控制流结构,顺序执行指定的 *** 作或语句。在顺序结构中,程序从上面开始执行,按照指定的顺序执行一系列语句,直到程序结束。每个语句都按照其在程序中的顺序执行。顺序结构是编程语言中最基本的结构之一,它形成了任何计算机程序的基本骨架。
分别是顺序结构、分支结构、(包括多分支结构) 和循环结构。
具体介绍:
1、顺序结构
顺序结构表示程序中的各 *** 作是按照它们出现的先后顺序执行的。
2、选择结构
选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。
3、循环结构
循环结构表示程序反复执行某个或某些 *** 作,直到某条件为假(或为真)时才可终止循环。循环结构的基本形式有两种:当型循环和直到型循环。
当型循环:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。因为是"当条件满足时执行循环",即先判断后执行,所以称为当型循环。
直到型循环:表示从结构入口处直接执行循环体,在循环终端处判断条件,如果条件不满足,返回入口处继续执行循环体,直到条件为真时再退出循环到达流程出口处,是先执行后判断。因为是"直到条件为真时为止",所以称为直到型循环。
扩展资料:
设计方法
1、自顶向下
程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
2、逐步细化
对复杂问题,应设计一些子目标作为过渡,逐步细化。
3、模块化
一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。
参考资料来源:百度百科--结构化程序设计方法
以上就是关于c语言如何循环运行程序全部的内容,包括:c语言如何循环运行程序、利用循环结构编程序求1+2+3+······+n的和并输出,其中n由键盘输入、简述c语言中的三种基本控制结构,循环结构。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)