幾個練習熟練掌握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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章