练习1:输入一个数,判断是否是完美数(完美数:正序和逆序的结果一致)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int PerfectNumber(int num) {
int originalNum = num;
int reverseNum = 0;
while (num > 0) {
int digit = num % 10;
reverseNum = reverseNum * 10 + digit;
num = num / 10;
}
if (originalNum == reverseNum) { // 判断是否是完美数
return 1; // 是完美数
} else {
return 0; // 不是完美数
}
}
int main() {
int num;
printf("请输入一个整数:\n");
scanf("%d", &num);
if (PerfectNumber(num)) {
printf("%d 是完美数。\n", num);
} else {
printf("%d 不是完美数。\n", num);
}
return 0;
}
练习2:
打印如下图形:
*
**
***
****
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++){
printf(" ");
}
for(j=1;j<=i;j++){
printf("*");
}
printf("\n");
}
return 0;
}
练习3:
****
***
**
*
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=i-1;j++){
printf(" ");
}
for(j=1;j<=5-i;j++){
printf("*");
}
printf("\n");
}
return 0;
}
练习4:输入两个数,计算最大公约数,以及最小公倍数
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int num1,num2,i,a,b;
printf("请输入两个数:\n");
scanf("%d %d",&num1,&num2);
for(i = 1;i<=num1 && i<=num2;i++){
if(num1%i==0 && num2%i==0)
a=i;
}
b=(num1*num2)/a;
printf("两个数的最大公约数为%d\n",a);
printf("两个数的最小公倍数为%d\n",b);
return 0;
}
练习5:输入一个数,判断是否是素数(素数:只能被1和本身整除)
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a,i;
printf("请输入一个数:\n");
scanf("%d",&a);
for(i=1;i<a;i++){
if(a%i==0)
{
printf("%d 不是一个素数\n",a);
break;
}
}
if(i == a)
{
if(a == 1){
printf("1不是素数\n");
}
else{
printf("%d是素数\n",a);
}
}
return 0;
}