1,九九乘法表的输出格式为 %d * %d =%d;
#include"stdio.h" int main() { int i, j; int s = 0; int n; for (i = 9; i > 0; i--){ for (n = 1; n <= i; n++) { if (n == i) printf("\n"); } for (j = 1; j <= i; j++, n++) { s = i*j; printf("%d*%d =%d ", i, j, i*j); } } system("pause"); return 0; }
若使输出结果向右对齐,可将 %d * %d =%d 改为 %d * %d =%2d;若为左对齐可改为 %-2d;
2,判断1000年到2000年间的闰年;
首先,设一个变量的取值范围为1000年到2000年间,可用for循环来实现年数的增长, 即 for(int i=1000;i<=2000;i++)
其次,判断某一年是否为闰年有两个条件,即{可以被4整除同时不可被100整除;或者 可以被400整除};代码如下:
#include"stdio.h" int main() { int i; int count = 0; for (i = 1000; i <= 2000; i++) { if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) printf("%d is rongnian \n", i); count++; } printf("%d\n", count); system("pause"); return 0; }
为确定输出的是否正确可以加入一个变量 如 count;通过count可知输出的闰年的个数;
3,打印100到200间的素数
判断一个数是否为素数,首先应该清楚素数的定义,素数是只有1和其自身为因数,再无其余因数;
例如 i;有3种方法;第一种(用i 除从2到i-1间的每个数,如果都没有余数,那i为素数)第一种的代码如下:
#include"stdio.h" int main() { int i; int count=0; for (int a = 100; a <= 200; a++) { for (i = 2; i < a; i++) { if (a%i == 0) break; }//退出循环有两种情况,1 break跳出 2,当i=a时,即没有找到a 的因数; if (i == a) { printf("%d \n", a); count++; } } printf("count=%d\n",count); system("pause"); return 0; }
第二种为从2一直判断到 sqrt(i);退出循环的条件需改为(j>sqrt(i));代码如下:
#include"stdio.h" #include"math.h" int main() { int i,j; int count=0; for (i = 100; i<=200 ; i++) { for ( j = 2; j<sqrt(i); j++) { if (i%j == 0) break; } if (j>sqrt(i)) { printf("%d \n", i); count++; } } printf("count=%d\n",count); system("pause"); return 0; }
注意:此时用到函数 开方,则须在头文件中加入“math.h”
第三种为从2到(i/2)判断:
#include"stdio.h" #include"math.h" int main() { int i,j; int count=0; for (i = 100; i<=200 ; i++) { for ( j = 2; j< i/2; j++) { if (i%j == 0) break; } if (j>= i/2) { printf("%d \n", i); count++; } } printf("count=%d\n",count); system("pause"); return 0;
还可以再进一步改进程序,
可把for 语句中的条件改变,即如下:
#include"stdio.h" int main() { int i; int count = 0; for (int a = 101; a <= 200; a+=2) { for (i = 2; i < a; i++) { if (a%i == 0) break; } if (i == a) { count++; printf("%d \n", a); } } printf("count=%d\n",count); system("pause"); return 0; }