c 语言学习第四天

2021-09-06 10:46:32 浏览数 (1)

if 语句

格式:

代码语言:javascript复制
// 1
// 其他语句...
if(表达式){

// 其他语句...
}
// 其他语句...

// 2
if(表达式){

}else{

}

// 3
if(表达式1){

}else if(表达式2){

}else if(表达式3){

}else{

}

// 4
if(表达式1){

}else if(表达式2){

}else if(表达式3){

}
代码语言:javascript复制
#include<stdio.h>

int main(){
  int i;
  printf("请输入分数:");
  scanf("%d",&i);
  if(i >= 90 ){
    printf("A");
  }else if(i < 90 && i >= 80){
    printf("B");
  }else if(i < 80 && i >= 70){
    printf("C");
  }else if(i < 70 && i >= 60){
    printf("D");
  }else{
    printf("E");
  }
  return 0;
}

switch

格式:

代码语言:javascript复制
switch(表达式){
  case 常量表达式1: 语句或程序块1
  case 常量表达式2: 语句或程序块2
  ....
  case 常量表达式n: 语句或程序块n
  default: 语句或程序块n 1
}
代码语言:javascript复制
#include<stdio.h>

int main(){
  char c;
  printf("请输入成绩等级:");
  scanf("%c",&c);

  switch(c){
    case 'A':
      printf("成绩合格在90分以上!n");
      break;
    case 'B':
    printf("成绩合格在80-90分!n");
    break;
   case 'C':
    printf("成绩合格在70-80分!n");
    break;
  case 'D':
    printf("成绩合格在60-70分!n");
    break;
  default:
    printf("成绩无效,请重新输入!");
    break;
  }
  return 0;
}

当 switch 里的 case 中忽略了 break ,会一直往下执行,直到遇到 break 为止。当未匹配到 case,会执行 switch中的default 分支。

while

格式:

代码语言:javascript复制
while(表达式){
  循环体
}
代码语言:javascript复制
#include<stdio.h>
int main(){

  int i= 0;
  printf("请输入字符:n");

  while( getchar() != 'n'){
    i= i 1;
  }

  printf("你输入了%d个字符n",i);
  return 0;
}

do while

格式:

代码语言:javascript复制
do{
  // 循环体
}while();

for

格式:

代码语言:javascript复制
for(表达式1;表达式2;表达式3){
    // 循环体
}
  • 表达式 1:循环初始化表达式
  • 表达式 2:循环条件表达式
  • 表达式 3:循环调整表达式

C99 新标准

C99 允许在 for 语句的表达式 1 中定义变量。

代码语言:javascript复制
#include<stdio.h>
int main(){
  for(int i = 5; i < 10;  i  ){
    printf("i:%dn",i);
  }
  return 0;
}
代码语言:javascript复制
$ gcc test.c && ./a.out
test.c: In function ‘main’:
test.c:5:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
  for(int i = 5;i<10;i  ){
  ^
test.c:5:2: note: use option -std=c99 or -std=gnu99 to compile your code

$ gcc test.c -std=c99 && ./a.out
i:5
i:6
i:7
i:8
i:9

求质数

代码语言:javascript复制
#include<stdio.h>

int main(){
	int i,j,k,num = 0;
	
 	scanf("%d",&k);
	
	for(i = 2;i < k; i  ){
		j = 2;
		_Bool b = 1;
		while(j < i){
			if(i % j == 0){
				b = 0;
				j = i;
			}
			j  ;
		}
		if(b){
			num   ;
			printf("%d是质数n",i);
		}
	}
	printf("%d以内的质数有%d个n",k,num);
	return 0;
}

循环嵌套

99 乘法表

代码语言:javascript复制
#include<stdio.h>
int main(){
  int i,j;
  for(i = 1;i <= 9; i  ){
    for(j = 1;j <= i;j  ){
      printf("%d x %d = %d ",i,j,i*j);
    }
    printf("n");
  }
  return 0;
}

0 人点赞