C语言循环初学练习
1.输入一个数是否为完美数。完美数:除了本身,所以因数和等于它本身。
#include<stdio.h>
int main(int argc, const char *argv[])
{
int n1=0,i=1,sum=0;
scanf("%d",&n1);
while(i<n1)
{
if(n1%i==0)sum+=i;
i++;
}
if(sum==n1)printf("是完美数\n");
else printf("不是完美数\n");
return 0;
}
2.输入一个数n,输出有n行*的正直角三角形,要求直角边放右边,具体形状如下。
#include<stdio.h>
int main(int argc, const char *argv[])
{
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(j=i;j>=1;j--)
{
printf("*");
}
putchar(10);
}
return 0;
}
3.输入一个数n,输出有n行*的倒直角三角形,要求直角边放右边,具体形状如下。
#include<stdio.h>
int main(int argc, const char *argv[])
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=i-1;j>=1;j--)
{
printf(" ");
}
for(j=1;j<=n-i+1;j++)
{
printf("*");
}
putchar(10);
}
return 0;
}
4.输入两个数,计算最大公约数和最小公倍数。
#include<stdio.h>
int main(int argc, const char *argv[])
{
int num1=0,num2=0,i=0,j=0; //i用来记录最大公约数,j用来记录最小公倍数
printf("输入两个数:");
scanf("%d %d",&num1,&num2);
for(i=num1<num2?num1:num2;i>=1;i--)//求最大公约数
{
if(num1%i==0&&num2%i==0)break;
}
for(j=num1>num2?num1:num2;j<=num1*num2;j++)//求最小公倍数
{
if(j%num1==0&&j%num2==0)break;
}
printf("%d和%d的最大公约数为%d,最小公倍数为%d\n",num1,num2,i,j);
return 0;
}
5.输入一个数,判断是否为素数。素数:只能被1和本身整除。
#include<stdio.h>
int main(int argc, const char *argv[])
{
int num=0,i=0;
scanf("%d",&num);
for(i=2;i<num;i++)
{
if(num%i==0)
{
printf("%d不是素数!\n",num);
return 0;
}
}
printf("%d是素数!\n",num);
return 0;
}