1.分别用while和do while实现1+2+..........+100,并打印出和。
#include<stdio.h>
int main()
{
int i=1;
int sum=0;
while(i<=100)
{
sum=sum+i;
i++;
}
printf("while循环:1+2+......+100=%d\n",sum);
return 0;
}
#include<stdio.h>
int main()
{
int i=1;
int sum=0;
do
{
sum=sum+i;
i++;
}
while(i<=100);
printf("do...while循环:1+2+......+100=%d\n",sum);
return 0;
}
2.任意输入两个正整数,求这两个正整数的最大公约数,并打印出最大公约数。(while或者do while选择一种循环结构实现该题)
#include<stdio.h>
int main()
{
int x,y,z;
printf("输入两个正整数:");
scanf("%d,%d",&x,&y);
while(x<0||y<0)
{
printf("重新输入:");
scanf("%d,%d",&x,&y);
}
while(x%y!=0)
{
z=x%y;
x=y;
y=z;
}
printf("最大公约数为:%d\n",y);
return 0;
}
3.用for循环结构实现如下矩阵:
①修改代码实现上面矩阵第三行无任何内容空行;
#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!=0&&n%5==0)
printf("\n");
if(i==3) continue;
printf("%d\t",i*j);
}
printf("\n");
return 0;
}
执行结果:
②实现第三行第二列元素打印之前break,并原来数字的位置打印位置不变;
#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!=0&&n%5==0)
printf("\n");
printf("%d\t",i*j);
if(i==3&&j==1) break;
}
return 0;
}
执行结果:
③实现第三行第三列元素打印之前执行continue,保持元素原有的位置不变。
#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!=0&&n%5==0)
printf("\n");
if(i==3&&j==3)
{
printf("\t");
continue;
}
printf("%d\t",i*j);
}
}
printf("\n");
return 0;
}
执行结果: