for循环语法:
for(初始赋值;循环条件;循环赋值) /*无“;”*/
{运算输出}
if语句:
if(条件成立) /*同上*/
else /*(条件不成立)*/
例子如下:
#include <stdio.h>
int main() {
int a, b;
for (a = 1; a <= 5; a++)
{
for (b = 1; b <= 5; b++)
{
printf("%d*%d=%d\t", a, b, a * b);
}
printf("\n");
}
return 0;
}
注意:“\t”为水平制表符,相当于在键盘上按下了Tab键。
#include <stdio.h>
int main() {
int sum=0;
for (int a = 1; a <= 100; a++)
{
sum += a;
}
printf("1到100的累加为:%d", sum);
return 0;
}
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
if (i % 2 != 0) {
printf("%d ", i);
}
}
return 0;
}
注意:“%”为取余符号,“!=”为不等于。
#include <stdio.h>
int main() {
int num, a, flag = 0;
printf("请输入一个正整数:");
scanf_s("%d", &num);
for (a = 2; a <= num / 2; ++a)
{
if (num % a == 0)
flag = 1;
break;
}
if (num == 1)
printf("1既不是质数也不是合数。\n");
else
if (flag == 0)
printf("%d是质数。\n", num);
else
printf("%d不是质数。\n", num);
return 0;
}
注意:计算是否是质数,只需计算小于这个数的一半的数就好(a<=num/2),可以减少程序计算量。质数的意思为除了1和它本身,无其他整数可以整除这个数,这个数如果被大于它本身一半而非它本身除了,则结果为一点几几几,结果肯定不是整数,计算无意义。
if(num%a==0)中num%a是为了判断是否可以整除,而“==”意思为“等于比较”,如比较成立,则结果为ture(1),如果比较不成立,则结果为false(0)。
“++a"的意思为先a自加1,再进行运算。
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
看不懂,isPrime()函数好像是自动判断质数的函数