c快速学习代码

一、获取输入

#include <stdio.h>
#include <stdlib.h>

int main()
{
int dogs ,num =28;

printf("how many dogs do you have?\n");
scanf("%d",&dogs); //获取输入,并赋值给变量地址

printf("so you have %d dogs!!\n",dogs); //格式化输出
printf("I like number %d very much",num );
getchar(); //等待输入字符
return 0;
}



//英寸换算厘米
#include <stdio.h>
#include <stdlib.h>
int main()
{
float asc;
while(scanf("%f",&asc)==1)
printf("%f inches is %.2f cm\n",asc,asc*2.54);
return 0;
}



一、使用 bool 变量

#include <stdio.h>
#include <stdbool.h>
int main(void)
{
float input;
bool isTrue=(scanf("%f",&input)==1);
while(isTrue){
printf("you typed %.d\n",(int)input); //强制类型转换
isTrue=(scanf("%f",&input)==1);
}
return 0;
}

二、字符

#include <stdio.h>
#include <stdlib.h>
int main()
{
char beep; //与 int beep; 等效
while(scanf("%c",&beep)==1){
printf("you typed a %c \n", beep);
}
//scanf 会将回车符一起读进变量,最后结果不能达到预期!可采用后面一种方法
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
char beep;
while(gets(&beep)){
        printf("you typed a %c \n", beep);
    }
return 0;
}

三、常量

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>
#define PI 3.1416
#define TEXT "hello world"
#define HTML 'H'
int main()
{
//常量定义 以及C预处理器 系统预定义常量
const int china =345;
printf("%d ,%d ,%d ,%d\n", INT_MAX, china, FLT_MAX_10_EXP, CHAR_MIN);
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   //计算利息
float x=100.0,y=100.0;
int n;
for(n=1;x>=y;n++){
x =100 +10*n;
y =y*1.05;
}
printf("%f %f %d" ,x,y,n);
return 0;
}


#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float x=100.0;
int n;
for(n=1;x>=0;n++){
x =x*1.08;
x -=10;
}
printf("%f %d",x,n);
return 0;
}



四、数学函数

#include <stdio.h>
#include <math.h>
#define PI 3.1415926
void main(void)
{
//i 为第几行,画余弦曲线
int i, j, blankNUm;
float cosValue;
for(i=0;i<21;i++){
cosValue =1-i/10.0;
blankNUm =(int)(180/5/PI*acos(cosValue));

for(j=0;j<blankNUm;j++)
printf("");
printf("*");
for(j=0;j<(73-2-2*blankNUm);j++)
printf("");
i!=20?printf("*\n"):printf("");
}
return 0;
}
#include <stdio.h>
int main(void)
{
  //计算 e ,前50项,其实根前10项结果一样,只是为了演示,用double可以满足精度要求
int i;
double factorial=1.0, e=0;
for(i=1;i<=50;i++){
factorial*=i;
e+=1.0/factorial;
}
printf("%f \n",e);
return 0;
}

//机械设计,简单计算

#include <stdio.h>
void main(void)
{
// n1主动轮转速 n0转速差 a滑动率 b带传动效率
//ft带的有效拉力 fc主动轮扭矩 fl从动轮扭矩 kg.cm
float n1,n0,a,b,fl,fc,ft;

while(scanf("%f %f %f %f",&n1,&n0,&fc,&fl)){
a =n0/n1;
b =(1-a)*fl/fc;
ft =2*fc/92*98;
printf("a=%.3f b=%.3f ft=%.3f\n",100*a,b,ft);
}
return 0;
}



五、特殊字符

#include <stdio.h>
#include <stdlib.h>
int main()
{
float salary;

printf("\aplease enter you salary by month:"); // \a响龄,貌似
printf(" $______\b\b\b\b\b\b"); // \b退格
if(scanf("%f",&salary)==1){
printf("\t$%.2f per manth is $%.2f per year", salary, salary*12.0);
printf("\rgEE!wa h\n"); // \r使光标移到当前行的起始位置,这里很微妙噢
}

return 0;
}

结果:

please enter you salary by month: $23.4__
gEE!wa h$23.40 per manth is $280.80 per year

#include <stdio.h>
#include <stdlib.h>
int main(void)
{  
  //字母金字塔
int p,i;
char letter;

scanf("%c",&letter);
for(p='A';p<=letter;p++){
for(i=0;i<(letter-p);i++)
{
printf("");
}
for(i='A';i<p;i++){
printf("%c",i);
}
for(i=p;i>='A';i--)
{
printf("%C",i);
}
printf("\n");
}
return 0;
}



六、for循环

各种循环,各种格式

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int k;
for(k=1,printf("%d:hi \n",k);printf("k =%d \n",k),k*k<26;
k+=2,printf("now k =%d\n",k))
{
printf("k is %d in the loop \n",k);
}
return 0;
}



#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
int word[8];
for(i=0;i<8;i++){
word[i] =pow(2,i);
}
i =0;
do{
printf("%d ",word[i]);
}while(++i<8);
return 0;
}


#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
double arr1[8],arr2[8];
for(i=0;i<8;i++){
scanf("%lf",&arr1[i]);
}
arr2[0] =arr1[0];
for(i=1;i<8;i++){
arr2[i] =arr2[i-1] +arr1[i];
}
for(i=0;i<8;i++){
printf("%.2f\t",arr1[i]);
}
printf("\n");
for(i=0;i<8;i++){
printf("%.2f\t",arr2[i]);
}
return 0;
}


#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i,max;

while(scanf("%d",&max)==1){
double sum1=0,sum2=0;
for(i=1;i<=max;i++){
sum1+=1.00/i;
i%2==0 ?(sum2-=1.0/i):(sum2+=1.0/i);
}
printf("sum1= %lf sum2= %lf\n",sum1,sum2);
}
return 0;
}

七、函数

#include <stdio.h>
#include <stdlib.h>
int square(int);
void echo(void);
int main()
{
int i;
for(i=0;i<10;i++)
{
printf("squire %d's value is%d\n",i,square(i));
}
printf("what\nNo/nBonzo?\n");
echo();
return 0;
}

int square(int s){
return s*s;
}
void echo(void){
printf("a function without input");
}

/* another */


#include <stdio.h>
#include <stdlib.h>
void one_three(void);
void two(void);
int main()
{
printf("start now:\n");
one_three();
printf("done!");
return 0;
}
void one_three(void){
printf("one\n");
two();
printf("three\n");
}
void two(void){
printf("two\n");
}

温度转换:

#include <stdio.h>
#include <float.h>
void Temperatures(double);
int main(void)
{
double input;
while(scanf("%lf",&input)){
Temperatures(input);
}
return 0;
}
void Temperatures(double h){
const float F1 =1.8;
const float F2 =32.0;
const float F3 =273.16;
float c,k;

c =F1*(float)h + F2;
k =c + F3;
printf("%.2f fahrenheit %.2f fcelsius %.2f kelvin\n", h, c, k);
}




八、简单字符串操作

//字符串翻转

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
char word[30];
scanf("%s",word);
printf("%d\n",strlen(word));
for(i=(strlen(word)-1);i>=0;i--)
{
printf("%c",word[i]);
}
printf("\n");
return 0;
}



#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
int word[8];
for(i=0;i<8;i++){
scanf("%d",&word[i]);
}
printf("\n");
for(i=7;i>=0;i--)
{
printf("%d ",word[i]);
}
printf("\n");
return 0;
}


#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char word[255];
int i=0;
while(scanf("%c",&word[i])){
if(word[i]=='\n')
break;
i++;
}
for(i =(strlen(word)-2);i>=0;i--){
printf("%c ",word[i]);
}
return 0;
}


九、杂项函数 sizeof

#include <stdio.h>
#include <float.h>
#define TEXT "hello world"
typedef float real;
int main()
{
real n =0;
size_t intsize;
intsize =sizeof(int);

printf("n =%f has %zd bytes all ints has %zd bytes\n",
n,sizeof(n),intsize); //%zd 指定size_t(C99),是sizeof的返回值
return 0;
}

十、联合与枚举

联合所有成员存储在同一个内存块内(分配 sizeof 最大的那个数据空间),因此一次只能使用一个值,所有成员的值一样

#include <stdio.h>
void main(void){
enum date { SUN=2, MON, TUE};
int a = MON;

union data
{
int year;
float month;
}d={34}, *pt;
pt = &d;
d.year = 12;
d.month = 5;
printf("%d\n", pt->month);
}








Stay hungry Stay foolish
原文地址:https://www.cnblogs.com/xiangzi888/p/2234648.html