谭浩强C语音程序设计代码示例第四章(新手入门笔记)
第一章包含参考书,在线编译工具,代码,注释等。
遵循共享互助原则
#include <stdio.h>
/*----------------------------(第四章 顺序程序设计)--------------------------*/
/****************************************************************************
C语言九种控制语句,可分为三类:
1)条件判断语句:if语句、switch语句。
2)循环执行语句:do while语句、while语句、for语句。
3)转向语句:break语句、goto语句、continue语句、return语句。
******************************************************************************/
#if 0
/*空语句理解:只有分号“;”组成的语句为空语句,如下*/
int main(void)
{
int i = 0;
while(getchar() != '\n')//只要从键盘上输入的字符不是回车,则重新输入
{
printf("%d ",i++);//输出输入的字符个数
}
return 0;
}
#endif
#if 0
/*eg4.1,输出单个字符,p67*/
int main(void)
{
char a = 'B',b = 'o',c = 'k';
putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t');//book
putchar(a);putchar(b);
putchar('\n');
putchar(b);putchar(c);
return 0;
}
#endif
#if 0
/*eg4.2,输入单个字符,p68*/
int main(void)
{
char c;
printf("input a character\n");//输入提示(打印功能)
c = getchar();//输入单个字符
putchar(c);//输出单个字符
return 0;
}
#endif
#if 0
/*eg4.3,printf函数(格式输出函数用法),p70*/
int main(void)
{
int a = 88,b = 89;
printf("%d %d\n",a,b);//88 89
printf("%d,%d\n",a,b);//88,89
printf("%c,%c\n",a,b);//X,Y
printf("a=%d,b=%d\n",a,b);//a=88,b=89
return 0;
}
#endif
#if 0
/*eg4.4,按照不同要求输出结果,p70*/
int main(void)
{
int a = 15;
float b = 123.1234567;
double c = 123455678.1234567;
char d = 'p';
printf("a=%d,%5d,%o,%x\n",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
printf("c=%lf,%f,%8.4lf\n",c,c,c);
printf("d=%c,%8c\n",d,d);
return 0;
}
#endif
#if 0
/*eg4.5,p70*/
int main(void)
{
int i = 8;/*有错误,与之前的原因一致eg3.17*/
printf("%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);//9,8,8,9,-8,-9
return 0;
}
#endif
#if 0
/*eg4.6,解决方法如下,p70*/
int main(void)
{
int i = 8;
printf("%d\n",++i);//9,++i先自加,后运算
//printf("%d\n",i);//9
printf("%d\n",--i);//8,--i先自减,后运算
//printf("%d\n",i);//8
printf("%d\n",i++);//8,i++先运算,后自加
//printf("%d\n",i);//9
printf("%d\n",i--);//9,i--先运算,后自减
//printf("%d\n",i);//8
printf("%d\n",-i++);//-8,
//printf("%d\n",i);//9
printf("%d\n",-i--);//-9
//printf("%d\n",i);//8
return 0;
}
#endif
#if 0
/*eg4.7,scanf用法,p71*/
int main(void)
{
int a,b,c;
printf("Input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);//输入整型数据0则输出整型数据,输入字符则转为响应的ASICC码值
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
#endif
#if 0
/*eg4.8,scanf不带空格,p73*/
int main(void)
{
char a,b;
printf("Input character a,b\n");
scanf("%c%c",&a,&b);//由于scanf函数"%c%c"中无空格,输入M N,则输出M 。而输入MN时则可输出MN
printf("%c%c\n",a,b);
return 0;
}
#endif
#if 0
/*eg4.9,scanf带空格,p73*/
int main(void)
{
char a,b;
printf("Input character a,b\n");
scanf("%c %c",&a,&b);//输入的两个字符之间不管带不带空格都可以输出
printf("\n%c %c\n",a,b);
return 0;
}
#endif
#if 0
#if 0
/*eg4.10,p73*/
int main(void)
{
short int a;
printf("Input a number\n");
scanf("%d",&a);//由于输入的数据类型为整型,而输出的语句为长整型,输入输出结果不符,所以需对其进行改动
printf("%ld",a);
return 0;
}
#else
/*eg4.11,p74*/
int main(void)
{
long a;
printf("Input a long number\n");
scanf("%ld",&a);//当输入数据改为长整型后,输入输出数据相等
printf("%ld",a);
return 0;
}
#endif
#endif
#if 0
/*eg4.12,输入三个小写字母输出ASCII码值,p74*/
int main(void)
{
char a,b,c;
printf("input character a,b,c\n");//输入提示
scanf("%c %c %c",&a,&b,&c);
printf("ASCII:%d,%d,%d\n小写字符:%c,%c,%c\n大写字符:%c,%c,%c\n",a,b,c,a,b,c,a-32,b-32,c-32);
return 0;
}
#endif
#if 0
/*e4.13,输出各种数据类型的字节长度,p75*/
/*想查啥自行添加*/
int main(void)
{
short int e; //2 byte
int a; //4 byte
long b; //8 byte
float f; //4 byte
double d; //8 byte
char c; //1 byte
unsigned int u_int;//4 byte
long long ll;//8 byte
printf("short int:%lu\n",sizeof(e));
printf("int:%lu\nlong:%lu\nfloat:%lu\ndouble:%lu\nchar:%lu\n",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));
printf("unsigned int:%lu\n",sizeof(u_int));
printf("long long:%lu\n",sizeof(ll));
return 0;
}
#endif
#if 0
/*eg4.14,输入三角形三边长,求三角形面积*/
/* 三角形面积公式area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s=1.0/2*(a+b+c) */
#include "math.h"//调用开方公式
int main(void)
{
float a,b,c,s,area;
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);//例如输入7,8,9
s = 1.0/2*(a+b+c);
area = sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
return 0;
}
#endif
#if 0
/*eg4.15,求ax^2+bx+c=0方程的根,a,b,c由键盘输入,设b^2-4ac>0,p75*/
#include <math.h>
int main(void)
{
float a,b,c,disc,x1,x2,p,q;
printf("input a,b,c:");//求x^2+4x+4=0
scanf("%f,%f,%f",&a,&b,&c);//输入1,4,4
disc = b*b-4*a*c;
p = -b/(2*a);
q = sqrt(disc)/(2*a);
x1 = p + q;
x2 = p - q;
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);//x1=2.00,x2=-2.00
return 0;
}
#endif