问题描述:
1.编写一个程序,输出1到50中间所有能被3整除的正整数.(用while语句实现)
2.从键盘上连续输入若干个字符,直到回车换行符显示,统计并输出所输入的空格、大写字母、小写字母以及其他字符的个数。不包含回车行。(用do-while语句实现)
3.不断地从键盘上输入两个正整数,求它们的最大公约数,直到用户回答n的时候停止程序的执行.(while或do-while都行)
麻烦帮帮忙,谢谢
解析:
main()
{
int i=1
while(i++<50)
{
if(!i%3)
printf("%d",i)
printf("\n")
}
}
main()
{
char c
int space=0
int lower=0
int up=0
int other=0
do
{
scanf("%c",&c)
if(c==32) 空格的ASCii码是32
space++
else if(c>'a'&&c<'z')
lower++
else if(c>'A'&&c<'Z')
up++
else
other++
}while(c!='\n')
printf("%d\t%d\t%d\t%d",space,lower,up,other)
}
这个题的代码有点长 我还是遍一个函数处理求公约数 然后再写 main()
void gongyue(int m,int n)
{
int r
if(m<n)
{r=mm=nn=r}
r=m%n
while(r!=0)
{
m=n
n=r
r=m%n
}
printf("%d",n)
}
main()
{
int flag=1
int a,b
while(flag){
scanf("%d%d",&a,&b)
printf("%d",gongyu(a,b))
printf("\n shi fou hai shuru buxiang shuru de qing shuru n")
scanf("%c",&c)
if(c=='n')
flag=0
else
flag=1
}
}
c语言while循环用法:
一般形式如下:
while(表达式)
{循环体内语句}
循环体外语句
其中执行过程如下:
(1)计算while后面括号里表达式的值,若其结果非0,则转入(2),否则转(3)。
(2)执行循环体,转(1)。
(3)退出循环,执行循环体下面的语句。
由于是先执行判断后执行循环体,所以循环体可能一次都不执行。
循环体可以为空语句“;”。
使用:
如果循环次数在执行循环体之前就已确定,一般用for语句。如果循环次数是由循环体的执行情况确定的,一般用while语句或者do- while语句。
当循环体至少执行一次时,用do-while语句,反之,如果循环体可能一次也不执行,则选用while语句。C++/C循环语句中,for语句使用频率最高,while语句其次,do语句很少用。
三种循环语句for、while、do-while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。