?更新不易,麻烦多多点赞,欢迎你的提问,感谢你的转发,
最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要。?
大一上程序设计期末复习,超基础,小猫猫大课堂配套练习。
目录
前言
while循环语句
折叠编辑本段do-while语句
折叠编辑本段for语句
折叠编辑本段三种语句比较
求1+2+3+...+100之和
方法1:dwhile()
方法2: do...while()
要求输出100~200的不能被3整除的数
输出以下4*5的矩阵
输出100-200所有不能被3整除的数,并统计这些数的个数
输出所有的玫瑰花数
输入m和n两个正整数求最大公约数和最小公倍数
输人一行字符,分别统计出其中英文字母、空格、?数字和其他字符的个数。
5.求Sn=a十aa+?aaa+...+a...a之值,其中a是一个数字,n表示a的位数,n由键盘输入例如:2+22十222十2222十22222(此时n=5)
同类型题,升级版1
同类型题,升级版2
老朋友,星号菱形
用双重循环,输出矩形(星号),每个图形输出5行
总结
前言
水字数,不然csdn要建议,小朋友需要可以看看,帮助理解
C语言循环控制语句是一个基于C语言的编程语句,该语句主要有while循环语句、do-while循环语句和for循环语句来实现循环结构。
while循环语句
一般形式如下:
while(表达式)
语句;
其中执行过程如下:正在上传…重新上传取消while语句
(1)计算while后面括号里表达式的值,若其结果非0,则转入(2),否则转(3)
(2)执行循环体,转(1)
(3)退出循环,执行循环体下面的语句。
由于是先执行判断后执行循环体,所以循环体可能一次都不执行。
循环体可以为空语句";"。
一般形式如下:
do
语句;
while(表达式);
(1)执行循环体,转(2)正在上传…重新上传取消do...while语句https://so1.360tres.com/t01fca9c92e175e20d4.jpg
(2)计算while后面括号里表达式的值,若其结果非0,则转入(1),否则转(3)
(3)退出循环,执行循环体下面的语句。
注意:do……while语句最后的分号(;)不可少,否则提示出错。循环体至少执行一次。
for语句是循环控制结构中使用最广泛的一种循环控制语句,特别适合已知循环次数的情况。
一般形式如下:
for ( [表达式 1]; [表达式 2 ]; [表达式3] )
语句
其中:
表达式1:一般为赋值表达式,给控制变量赋初值;正在上传…重新上传取消for语句https://so1.360tres.com/t01389352673bc08e9a.jpg
表达式2:关系表达式或逻辑表达式,循环控制条件;
表达式3:一般为赋值表达式,给控制变量增量或减量;
语句:循环体,当有多条语句时,必须使用复合语句。
其执行过程如下:首先计算表达式1,然后计算表达式 2。若表达式2为真,则执行循环体;否则,退出 for循环,执行for循环后的语句。如果执行了循环体,则循环体每执行一次,都计算表达式3,然后重新计算表达式2,依此循环,直至表达式 2的值为假,退出循环。
for语句的三个表达式都是可以省略的,但分号";"绝对不能省略。for语句有以下几种格式:
(1)for(; ;) 语句;
(2)for(;表达式2;表达式3 ) 语句;
(3)for(表达式1;表达式2;) 语句;
(4)for(i=1,j = n; i < j; i ++,j - -?) 语句;
同一个问题,往往既可以用 while语句解决,也可以用 do-while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。选用的一般原则是:
(1) 如果循环次数在执行循环体之前就已确定,一般用 for语句。如果循环次数是由循环体的执行情况确定的,一般用 while语句或者do- while语句。
(2) 当循环体至少执行一次时,用 do-while语句,反之,如果循环体可能一次也不执行,则选用while语句。
C++/C循环语句中,for语句使用频率最高,while语句其次,do语句很少用。
三种循环语句for、while、do-while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。
求1+2+3+...+100之和
方法1:dwhile()
?
?
#include<stdio.h>
int main()
{
int i=1,sum=0;
while(i<=100)
{
sum=sum+i;
i++;
}
printf("sum=%d",sum);
return 0;
}
方法2: do...while()
?
#include<stdio.h>
int main()
{
int i=1,sum=0;
do
{
sum=sum+i;
i++;
}while(i<=100);//记得填i的范围哦!
printf("%d",sum);
return 0;
}
要求输出100~200的不能被3整除的数
?
?
#include<stdio.h>
int main()
{
int n;
for(n=100;n<=200;n++)
{
if(n%3==0)
continue;//有时并不希望终止整个循环的操作,而只希望提前结束本次循环,而接着执行下次循环,可以使用continue。
printf("%d ",n);
}
printf("\n");
return 0;
}
输出以下4*5的矩阵
#include<stdio.h>
int main()
{
int i,j,n=0;
for(i=1;i<=4;i++)
for(j=1;j<=5;j++,n++)
{
if(n%5==0)
printf("\n");
printf("%d\t",i*j);// \t讲过,忘了看前几次的习题博客。
}
printf("\n");
return 0;
}
输出100-200所有不能被3整除的数,并统计这些数的个数
#include<stdio.h>
int main()
{
int n,count=0;
for(n=100;n<=200;n++)
{
if(n%3==0)
continue;
count++;
}
printf("count=%d",count);
return 0;
}
输出所有的玫瑰花数
#include<stdio.h>
int main()
{
int a,b,c,d,n;
for(n=1000;n<=9999;n++)
{
a=n/1000;
b=n%1000/100;
c=n%1000%100/10;
d=n%1000%100%10;
if(n==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
printf("%d ",n);
}
return 0;
}
输入m和n两个正整数求最大公约数和最小公倍数
#include <stdio.h>
int main()
{
int m=0,n=0,mn=0,i=0,a=0;
scanf("%d,%d",&m,&n);
if(m>n)
mn=n;
else
mn=m;
for(i=mn;i>0;i--)
{
if(m%i==0&&n%i==0)//最大公因数应该小于等于n和m的较小数,不断进行试错,可得
break;
}
for(a=mn;a<m*n;a++)
{
if(a%m==0&&a%n==0)//最小公倍数应该大于等于n和m的较小数,不断进行试错,可得
break;
}
printf("最大公因数=%d,最小公倍数=%d",i,a);
return 0;
}
输人一行字符,分别统计出其中英文字母、空格、?数字和其他字符的个数。
#include <stdio.h>
int main()
{
char a[20];
int number =0;
int space =0;
int letters=0;
int other=0;
while((a[i]=getchar())&&a[6]]!='\n')//getchar作用是读取字符,getchar()的功能最主要是c语言中读取字符的一个函数,能够提取单个字符
{
if(a[i]>='0'&&a[i]<='9')
number++;
else if(a[i]==' ')
space ++;
else if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
letters ++;
else
other++;
}
printf("英语字母个数为:%d\n",letters);
printf("数字个数为:%d\n",number);
printf("空格个数为:%d\n",space);
printf("其他个数为:%d\n",other);
return 0;
}
求Sn=a十aa+?aaa+...+a...a之值,其中a是一个数字,n表示a的位数,n由键盘输入例如:2+22十222十2222十22222(此时n=5)
#include<stdio.h>
int main()
{
double a=2.0,b=1.0;
double n,sum=0.0,t;
int i;
for(i=1;i<=20;i++)
{
n=a/b;
t=a;
a=a+b;
b=t;
sum=sum+n;
}
printf("%.10lf",sum);
return 0;
}
同类型题,升级版1
#include<stdio.h>
int main()
{
int n1=100,n2=50,n3=10;
double k,s1=0,s2=0,s3=0;
for(k=1;k<=n1;k++)
{
s1=s1+k;
}
for(k=1;k<=n2;k++)
{
s2=s2+k*k;
}
for(k=1;k<=10;k++)
{
s3=s3+1/k;
}
printf("%lf",s1+s2+s3);
return 0;
}
同类型题,升级版2
有一个分数序列
#include<stdio.h>
int main()
{
double a=2.0,b=1.0;
double n,sum=0.0,t;
int i;
for(i=1;i<=20;i++)
{
n=a/b;
t=a;
a=a+b;
b=t;
sum=sum+n;
}
printf("%.10lf",sum);
return 0;
}
老朋友,星号菱形
?
#include<stdio.h>//菱形写了三遍了,自己还是写不出来,啊————,真是头疼!
int main()
{
int n,i,j,k;
scanf("%d",&n);
for(i=1;i<=n+1;i++)
{
for(j=1;j<=n+1-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
printf(" ");
for(k=1;k<=(2*n+1)-2*i;k++)
printf("*");
printf("\n");
}
return 0;
}
用双重循环,输出矩形(星号),每个图形输出5行
#include<stdio.h>
#include<math.h>
int main()
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
总结
循环结构,小喵练习得差不多有这些数,有些重复了的,小喵挑拣了些,最近状态不对,小喵会对自己的博客进行再度完善的,希望下一次的小喵会更美好。
更新不易,麻烦多多点赞,欢迎你的提问,感谢你的转发,
最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要。?
|