顺序程序设计
1. 条件表达式
条件表达式结合方式自右向左
2. Switch语句
#include <stdio.h>
void main(){
int a;
printf("input integer number: ");
scanf("%d", &a);
switch (a) {
case 1: printf("Monday\n");
break ;
case 2: printf("Tuesday\n");
break;
case 3: printf("Wednesday\n");
break;
case 4: printf("Thursday\n");
break;
case 5: printf("Friday\n");
break;
case 6: printf("Saturday\n");
break;
case 7: printf("Sunday\n");
break;
// 这个可以没有.顺序也没有要求
default: printf("error\n");
}
}
3. while语句
// 统计从键盘输入一行字符的个数
#include <stdio.h>
void main(){
int n = 0;
printf("input a stirng:\n");
// 获取输入字符.
while (getchar() != '\n'){
n++;
}
printf("%d", n);
}
// 求一到一百的和
#inculde <stdio.h>
void main(){
int i, sum = 0;
i = 1;
while (i <= 100){
// 累加
sum = sum + i;
i++;
}
printf("%d\n", sum);
}
4. goto语句
// 求一到一百的和
#include <stdio.h>
void mian(){
int i, sum = 0;
i = 1;
// goto语句和loop构成循环
loop: if (i <= 100){
sum = sum + i;
i++;
goto loop;
}
printf("%d\n", sum);
}
5. for循环
// 引入字符串的方式
char *s = "Hello world!";
char v1[] = "Hello world!";
char *p1 = v1; // 第一个字符的内存地址
// 统计从键盘输入一行字符的个数
#include <stdio.h>
void main(){
int n = 0;
printf("input a stirng:\n");
// 获取输入字符.
char *s = "Hello world"; // 可以表示一个字符串
while (getchar() != '\n'){ // 当输入回车时结束循环
n++;
}
printf("%d", n);
}
for循环基本格式:
for循环注意事项:
for循环例题:
-
输出图形
**
***......
// 输出图形
// *
// **
// ......
# include <stido.h>
void main(){
int i, j;
for (i=1; i<7; i++){ // 循环的嵌套
for (j=1; j<=i; j++){
putchar("*");
}
}
printf("\n");
}
-
题目: 有1.2.3.4个数字, 能组成多少个互不相同且无重复的三位数?都是多少?
程序分析: 可填在百位. 十位. 个位的数字都是1. 2. 3. 4. 组成的所有排序去掉不满足条件的排序.
#include <stdio.h> void main(){ int i, j, k; printf("\n"); for (i=1; j<5; j++){ for (j=1; j<5; j++){ for (k=1; k<5; k++){ if (i!=k && i!=j && j!=k) // 判断是否相等 printf("%d, %d, %d\n", i, j, k); } } } }
6. break & continue
break和continue只能在循环中. 起到跳出循环的作用
题目1: 键盘中输入Esc退出循环. 输入Enter则不做任何处理. 继续输入下一个字符.
#include <conio.h> // 后边getch和putch需要 void main(){ char ch; for ( ; ; ){ // while(1) ch = getch(); if (ch == 27); // Esc ASCII码为27 break; // 退出循环 if (ch == 13); // Enter ASCII码为13 continue; // 跳出当前字符输出语句 putch(ch); // 输出字符 } getch(); // 让程序停一下.敲任意键继续 }
题目2: 把100~200之间不能被3整除的数输出
void main(){ int n; for (n=100; n<=200; n++){ if (n%3 == 0){ continue; // 跳出当前循环 printf("%d\n", n); } } }
题目3: 求pi = 4(1 - 1/3 + 1/5 - 1/7 + 1/9 -......)
#include <stdio.h> #include <dtdio.h> void main(){ int s; float n, t, pi; t = 1; pi = 0; n = 1.0; s = 1; while (fabs(t) > 1e-6){ // fabs()判断精度 pi = pi + t; n = n + 2; s = -s; t = s/n; } pi = pi * 4; printf("pi=%10.6\n", pi); // 宽度10 精度6 }
题目4: 求Fibonacci数列
#include <stdio.h> void main(){ long int f1, f2; f1 = 1; f2 = 1; for (i=1; i<=20; i++){ printf("%12ld %12ld", f1, f2); if (i%2 == 0){ printf("\n"); // 此步骤只是为了多余 } f1 = f1 + f2; f2 = f2 + f1; } }
题目5: 判断输入的是否为素数
#include <stdio.h> #include <math.h> void main(){ int m, i, k; scanf("%d", &m); k = sqrt(m); // 当m=26 -> k=5 printf("%d", k); for (i = 2; i < k; i++){ if (m%i == 0){ break; } } if (i > k){ printf("%d is a prime number\n", m); }else{ printf("%d is not a prime number\n", m); } }
标签:include,int,void,break,顺序程序,printf,设计,main From: https://www.cnblogs.com/huxiaofeng1029/p/17558768.html题目6: 求100~200之间的素数
#include <stdio.h> #include <math.h> void main() { int m, k, i; // 从100~200中单数循环 for (m = 101; m <= 200; m = m + 2) { k = sqrt(m); for (i = 2; i <= k; i++) { if (m % i == 0) break; } // 判断是否为素数 if (i >= k + 1) { printf("%d\n", m); } } printf("\n"); }