#include<stdio.h>#include<stdlib.h>intmain(){char characterName[]="John";int characterAge =35;printf("There once a man named %s\n", characterName);printf("he was %d years old.\n",characterAge);
characterAge =30;printf("He really liked the name %s\n",characterName);printf("but did not like being %d.\n",characterAge);return0;}
数据类型
#include<stdio.h>intmain(){int age =40;double gpa =3.6;char grade ='A';char phrase[]="ABCD EFGH";return0;}
#include<stdio.h>#include<stdlib.h>#include<math.h>intmain(){// 幂函数double base =10,x =3.14159;doublepow(base,x);doublesqrt(base);//平方根doublecbrt(base);//立方根// 指对数函数doubleexp(x);//计算自然对数的底(e)的 x 次幂doublelog(x);//计算 x 的自然对数doublelog10(x);//计算 x 的以10为底的对数// 三角函数、反三角函数和双曲函数、反双曲函数doublesin(x);doublecos(x);doubletan(x);doubleasin(x);doubleacos(x);doubleatan(x);doublesinh(x);doublecosh(x);doubletanh(x);doubleasinh(x);doubleacosh(x);doubleatanh(x);// 舍入和绝对值函数doubleceil(x);// 向上舍入doublefloor(x);// 向下舍入doublefabs(x);// 绝对值return0;}
#include<stdio.h>intmain(){constint FAV_NUM =5;printf("%d\n",FAV_NUM);// FAV_NUM = 10; // not allowedprintf("Hello");return0;}
scanf
#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){int age;printf("Enter your age: ");scanf("%d",&age);printf("You are %d years old.\n",age);double gpa;printf("Enter your gpa: ");scanf("%lf",&gpa);getchar();printf("Your gap is %.5lf.\n",gpa);// char型的前后都要使用getchar()消费存在于缓冲区结尾的换行符char grade;printf("Enter your grade: ");scanf("%c",&grade);getchar();printf("Your grade is %c.\n",grade);char name[20];printf("Enter your name: ");// scanf("%s",name); // 数组不用使用&符,因为它本身就是地址// getchar(); fgets(name,20,stdin);// 可以读取一行,但是会把换行符包含在字符串中if(name[strlen(name)-1]=='\n'){
name[strlen(name)-1]='\0';}printf("Hello, %s. This is kyle.\n",name);return0;}
#include<stdio.h>intmain(){char adjective[20];char color[20];char thing[20];char place[20];char profession[20];char animal[20];char name[20];printf("欢迎使用mad libs小游戏!\n");printf("请根据提示输入文字.\n\n");printf("输入一个形容词: ");scanf("%s", adjective);printf("输入一个颜色: ");scanf("%s", color);printf("输入一个东西: ");scanf("%s", thing);printf("输入一个地点: ");scanf("%s", place);printf("输入一个职业: ");scanf("%s", profession);printf("输入一个动物: ");scanf("%s", animal);printf("输入一个名字: ");scanf("%s", name);printf("\n下面是你的madlibs故事:\n\n");printf("There once was a %s %s who lived in %s. ", adjective, profession, place);printf("They always wore a %s hat and loved to play with his pet %s named %s. ", color, animal, name);printf("One day, they found a magic %s that could make any dream come true.\n", thing);return0;}
函数function
#include<stdio.h>// 函数原型声明,函数定义如果在前可以没有函数声明intaddNumber(int num1,int num2);intmain(){int num1,num2,sum;//获取用户输入printf("Enter first number: ");scanf("%d",&num1);printf("Enter second number: ");scanf("%d",&num2);
sum =addNumber(num1,num2);printf("Sum = %d + %d = %d\n",num1, num2, sum);return0;}// 函数定义intaddNumber(int num1,int num2){int res;
res = num1 + num2;return res;}
数组array
#include<stdio.h>#include<stdlib.h>voiddeclare();voidinitialization();voidindex();voidtraverse();voidmultidimensionalArrays();intmain(){declare();initialization();index();traverse();multidimensionalArrays();return0;}voiddeclare(){int myNumbers[10];// 声明一个整数数组,可以存储10个整数char myCharacters[5];// 声明一个字符数组,可以存储5个字符}voidinitialization(){int myNumbers[10]={0,1,2,3,4,5,6,7,8,9};// 初始化一个整数数组char myCharacters[5]={'a','b','c','d','e'};// 初始化一个字符数组}voidindex(){int myNumbers[5]={5,10,15,20,25};printf("第一个元素: %d\n", myNumbers[0]);// 输出 5printf("第三个元素: %d\n", myNumbers[2]);// 输出 15// 更改第四个元素的值
myNumbers[3]=100;printf("第四个元素: %d\n", myNumbers[3]);// 输出 100}voidtraverse(){int myNumbers[5]={5,10,15,20,25};for(int i =0; i <5; i++){printf("元素[%d]: %d\n", i, myNumbers[i]);}}voidmultidimensionalArrays(){int myMatrix[2][3]={{1,2,3},{4,5,6}};for(int i =0; i <2; i++){for(int j =0; j <3; j++){printf("%d ", myMatrix[i][j]);}printf("\n");}}
条件语句
#include<stdio.h>#include<stdlib.h>voidifelseDemo();voidswitchDemo();intmain(){ifelseDemo();switchDemo();return0;}voidifelseDemo(){int score;printf("Enter your score: ");scanf("%d",&score);// 条件检查:根据分数判断等级if(score >=90){printf("Grade: A\n");}elseif(score >=80){printf("Grade: B\n");}else{printf("Grade: C\n");}}voidswitchDemo(){char grade;printf("Enter your grade (A , B, C):");getchar();scanf("%c",&grade);// char型读取前后用getchar()消费输入缓冲区的空白符,整型不会读取换行符,所以不需要switch(grade){case'A':printf("Excellent!\n");break;case'B':printf("Well done\n");break;case'C':printf("better try again\n");break;default:printf("Invalid grade\n");}}
#include<stdio.h>#include<math.h>intmain(){int number = __INT32_MAX__;int counter =1;while(number !=0&& counter <=5){
counter++;printf("Enter numbers (0 to stop): ");scanf("%d",&number);// 继续读取下一个数if(number ==0){continue;}printf("You entered %d\n", number);// 输出用户输入的数}printf("End of input.\n");return0;}
do_while
#include<stdio.h>#include<math.h>intmain(){int number = __INT32_MAX__;int counter =1;// 先执行一次do{printf("Enter numbers (0 to stop): ");scanf("%d",&number);// 读取用户输入的数// 如果number为0,立即跳到循环开始,不执行后面的打印语句if(number ==0){continue;}printf("You entered %d\n", number);// 输出用户输入的数
counter++;}while(number !=0&& counter <=5);printf("End of input.\n");return0;}
for loop
#include<stdio.h>intmain(){int number;int counter;// for loop 由三部分组成, 初始化部分, 条件部分, 增量部分for(counter =1, number = __INT32_MAX__; number !=0&& counter <=5;++counter){printf("Enter numbers (0 to stop): ");scanf("%d",&number);// 读取用户输入的数if(number ==0){continue;// 如果输入为0,跳过本次循环的剩余部分}printf("You entered %d\n", number);// 输出用户输入的数}printf("End of input.\n");return0;}
guess game
#include<stdio.h>#include<stdlib.h>#include<time.h>#defineMAX_TRIES10#defineRANGE_LOW1#defineRANGE_HIGH100intmain(){int secretNumber, guess, tries =0;// 初始化随机数生成器srand(time(NULL));// 生成一个范围在 RANGE_LOW 到 RANGE_HIGH 之间的随机数
secretNumber =(rand()%(RANGE_HIGH - RANGE_LOW +1))+ RANGE_LOW;printf("Welcome to the Guessing Game!\n");printf("I have selected a number between %d and %d. You have %d tries to guess it.\n", RANGE_LOW, RANGE_HIGH, MAX_TRIES);do{printf("Enter your guess: ");scanf("%d",&guess);
tries++;if(guess > secretNumber){printf("Too high! You have %d tries left.\n", MAX_TRIES - tries);}elseif(guess < secretNumber){printf("Too low! You have %d tries left.\n", MAX_TRIES - tries);}else{printf("Congratulations! You guessed the number in %d tries!\n", tries);return0;// 猜对了就退出程序}}while(tries < MAX_TRIES);// 如果用完了所有尝试还没猜中,告知正确答案printf("Sorry, you've used all your tries. The correct number was %d.\n", secretNumber);return0;}
二维数组 & 嵌套循环
#include<stdio.h>#defineSIZE5intmain(){int table[SIZE][SIZE]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}};// 使用嵌套循来填充这个数组for(int i =0; i < SIZE; i++){for(int j =0; j < SIZE; j++){
table[i][j]=(i +1)*(j +1);//计算乘法表的值}}// 使用嵌套循来打印这个数组for(int i =0; i < SIZE; i++){for(int j =0; j < SIZE; j++){printf("%4d",table[i][j]);// 使用%4d来保持打印格式整齐}printf("\n");}return0;}