🌞欢迎来到C语言的世界
🌈博客主页:卿云阁💌欢迎关注🎉点赞👍收藏⭐️留言📝
🌟本文由卿云阁原创!
🌠本阶段属于练气阶段,希望各位仙友顺利完成突破
📆首发时间:🌹2021年10月20日🌹
✉️希望可以和大家一起完成进阶之路!
🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
目录
🍈 字符输入函数getchar
🍉字符输出函数putchar
🍊格式输入函数scanf
🍋顺序结构程序设计
🥒选择结构
🥬循环结构
🍈 字符输入函数getchar
当C程序执行到getchar();这条语句时,如果缓冲区中没有字符,则等待用户输入,用户输入的字符被存放在缓冲区中,当用户键入Enter键之后,getchar从缓冲区开始取走一个字符并返回该字符的ASCII码值或EOF字符。
例如顺序从键盘键入ABC三个字符,最后键入一个Enter键(在windows操作系统中,Enter键表示了两个字符'\r'和'\n',在linux系统中,只是一个字符'\n'),如果是windows系统,缓存区中就得到了四个字符('\r'为回车字符,用于触发getchar执行)。
当缓冲区有数据时,getchar从缓冲区顺序取出一个字符。例如有char ch; ch=getchar();,getchar从缓冲区取出字符的ASCII值并赋给ch。
🍉字符输出函数putchar
从键盘输入一个字符,并输出到显示器中。
#include
int main(void) { char ch; printf("please input a char:\n"); //这是一条表达式语句,最后有;,下同。 ch=getchar(); //程序执行到此处时,等待用户输入字符,最后按Enter键。//Enter键结束后,getchar()从缓冲区得到字符并赋给ch。 putchar(ch); // 把ch输出到显示器中。 putchar('\n'); //输出一个换行符常量。 return 0; } 🍉
这里键入一个字符a和Enter键,这个Enter键代表的字符也会进入缓存区,如果要在程序中用getchar输入两个字符'A','B'分别给ch1和ch2变量时,正确的键入是AB+enter,而不是输入A+enter和B+enter。
🍊格式输入函数scanf
#从键盘上输入两个数分别赋给a,b
# include
int main(void) {int a, b;printf("Please enter two integers separated by a space:\n"); //提示输入。scanf("%d%d", &a, &b);printf("a= %d, b=%d\n", a , b);return 0;}
🍊
🍋顺序结构程序设计
#include
#include int main(void) {float a, b,c;float s,area;printf("Please enter the side lengths a, b, c of the triangle:\n"); //提示输入。scanf("%f%f%f", &a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%-7.2f",area);return 0;}
2.从键盘输入一个英文大写字母,要求改用小写字母输出。
#include
#include int main(void) {char a, b;printf("a=:"); //提示输入。scanf("%c", &a);b=a+32;printf("a->%c",b);return 0;}
#include
#include int main(void) { float a,b,c,disc,x1,x2,p,q; // disc存放的结果。 printf("Please enter a, b, and c, separated by spaces:\n"); scanf("%f%f%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=(float)sqrt(disc)/(2*a); // sqrt得到的值是double型,转换成float。 x1=p+q; x2=p-q; printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2); return 0; }
🥒选择结构
例1 输入两个int型数据,输出它们中的较大者。
#include
int main() { int a,b,max;printf("请输入两个数a,b:");scanf("%d%d",&a,&b);a=max;if(b>a)max=b;printf("max=%d",max); }
例4输入一个整型分数,如果分数在90-100分,输出“优”,80-89,输出“良”,60-79,输出“及格”,60分以下输出“不及格”,用switch语句实现编程(假设分数是区间[0,100]上的整数)。
#include
int main(void) {int score;scanf("%d",&score); switch(score/10) {case 10: case 9: printf("优\n");break; case 8: printf("良\n");break; case 7: case 6: printf("及格\n");break;default: printf("不及格\n"); } return 0; } 🥬循环结构
例求1+2+3+...100的值
#include
int main(void) { int i=1;int sum=0;while(i<=100){ sum=sum+i;i++;} printf("sum=%d",sum);return 0; }
例:统计从键盘输入的一行字符的个数。
#include
int main(void) { unsigned charNum=0; //用于统计字符的个数,初始化为0。 printf("Input a string:"); while(getchar()!='\n') //把从键盘获取的字符与'\n'比较形成表达式。 charNum ++; printf("Number of characters: %u\n", charNum); return 0; }
例5-3-2 用for语句输出斐波那契数列(Fibonacci Sequence)的前10个数。
include
int main(void) { int predata=1; int nextdata=1; int i,temp; printf("%d %d ",predata,nextdata); for(i=3;i<=10;i++) {temp=nextdata;nextdata=predata+nextdata;predata=temp;printf("%d ",nextdata); } return 0; }
例用for语句实现从键盘输入一组字符,并输出出来。
#include
int main(void) { char ch; for(;(ch=getchar())!='\n';) {putchar(ch); } return 0; }
例求出用 50元、20元 和 10元换100元有几种方式
#include
int main(void) { int i,j,z; for(i=0;i<=2;i++)for(j=0;j<=5;j++)for(z=0;z<=10;z++){if(100==50*i+20*j+10*z)printf("i=%d j=%d z=%d\n",i,j,z);} return 0; }
例找出一个比100大且能被47整除的整数,并输出
#include
int main(void) { int i; for(i=101;;i++) {if(i%47!=0)continue;printf("%d",i);break; } return 0; }
例从键盘输入一个整数,判断是否为素数,是就输出Y,不是就输出N
#include
#include int main(void) { int m,k,i; printf("m:"); scanf("%d",&m); k=(int)sqrt(m); for(i=2;i<=k;i++) {if(m%i==0)break; } if(i>k)printf("N"); elseprintf("N"); return 0; }
(2)第二种方法
#include
#include int main(void) { int m,k,i; int flag=0; printf("m:"); scanf("%d",&m); k=(int)sqrt(m); for(i=2;i<=k;i++) {if(m%i==0){flag=1;break;} } if(flag=1)printf("N"); elseprintf("Y"); return 0; }
例找出100到200之间的素数,并它们输出出来
#include
#include int main(void) { int m,k,i,j; for(m=100;m<=200;m++) { int flag=0; k=(int)sqrt(m); for(i=2;i<=k;i++) {if(m%i==0){flag=1;break;} } if(flag!=1)printf("m=%d\n",m); } return 0; }
上一篇:【C++】类和对象(中)
下一篇:星座人物笑话