几个练习熟练掌握for循环

(1)求Sn = a+aa+aaa+aaaa…的值:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
 int a = 0;
 int temp = 0;
 int sum = 0;
 int n = 0;
 printf("请输入要计算的项数n以及a的值:");
 scanf("%d %d", &n,&a);
 for (int i = 0; i < n; ++i)
 {
  temp = temp * 10 + a;
  sum += temp;
 }
 printf("%d\n", sum);
 system("pause");
 return 0;
}

(2)求0-999之间的水仙花数:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int IsShuixian(int num)
{
 int temp = num;
 if (num < 100 || num >= 1000)
 {
  return 0;
 }
 int num1 = num % 10;
 num /= 10;
 int num2 = num % 10;
 num /= 10;
 int num3 = num % 10;
 if (pow(num1, 3) + pow(num2, 3) + pow(num3, 3) == temp)
 {
  return 1;
 }
 return 0;
}
int main()
{
 for (int i = 1; i <= 1000; ++i)
 {
  if (IsShuixian(i) == 1)
  {
   printf("%d\n", i);
  }
 }
 system("pause");
 return 0;
}

(3)打印半边菱形:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void PrintLine(char star)
{
 for (int i = 1; i <= star; ++i)
 {
  printf("*");
 }
 printf("\n");
}
void PrintLingxing(int n)
{
 for (int i = 1; i < n; ++i)
 {
  PrintLine(2 * i - 1);
 }
 PrintLine(2 * n - 1);
 for (int i = n - 1; i>0; --i)
 {
  PrintLine(2 * i - 1);
 }
}
int main()
{
 int n = 0;
 printf("请输入菱形中间一行的行号:");
 scanf("%d", &n);
 PrintLingxing(n);
 system("pause");
 return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43870213/article/details/86571420