本文主要是介绍输出图形(循环程序,任意字符) 三角形、矩形、平行四边形、菱形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
接触C有一段时间了,看多好次输出各种图形的练习题,自己也曾经编写过,今天整理在一起,为了给自己留下记录,也为了跟同样在学习路上的朋友们一起交流;
代码采用主函数、分函数结构
实现以下功能
1、选择性输出 想要的图形 以及 图形大小
2、循环功能,主动选择退出
3、键盘任意输入,只有符合要求的输入(0~4)被执行,其他均为非法输入,返回程序,重新选择
4、屏蔽输入结束时的“回车”,用函数 fflush(stdin); 这个函数的作用是清除缓存,为下一次输入做准备
部分截图:
以下是代码:供参考
/*输出图形小程序*/
#include "stdio.h"
#include "stdlib.h"
//声明函数,三角形、矩形、平行四边形、菱形
int sanj();
int juxi();
int pinx();
int ling();
void main()
{int a;printf("*******输出图形小程序*******\n\n\t【1】三角形\n\t【2】矩形\n\t【3】平行四边形\n\t【4】菱形\n\t【0】退出\n\n");printf("请选择要执行代号: ");//scanf("%d",&a); //这种取值方法只能取数值 a=getchar(); //键盘获取任意字符 printf("\n\n");a=a-'0'; //将字符转换为ASCII码 ,并与 ’0‘ 比较大小 if(!(a>=0&&a<=4)) a=5; //对于比值不是 0-4 之间的的数统一赋值为 5 (不是0~4的都可以) switch(a) //进入对应的函数 {case 1: sanj();break;case 2: juxi();break;case 3: pinx();break;case 4: ling();break;case 0: exit(0);default: printf("选择错误,返回主程序\n\n");fflush(stdin); //这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main(); //返回主函数 }
}int sanj() //输出三角形 函数
{ int s1,s2,s3,s;printf("【1】三角形 行数: ");scanf("%d",&s);printf("\n\n ");s3=s*2-1;printf("\n");for(s1=1;s1<=s;s1++){ printf("\t");for(s2=1;s2<=s-s1;s2++)printf(" ");for(s3=1;s3<=s1*2-1;s3++)printf("* ");printf("\n");}printf("\n\n");fflush(stdin); //这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main(); //返回主函数 ;
}int juxi() //输出矩形 函数
{ int s1,s2,s;printf("【2】矩形 行数: ");scanf("%d",&s);printf("\n\n");for(s1=1;s1<=s;s1++){ printf("\t");for(s2=1;s2<=s;s2++)printf("* ");printf("\n");}printf("\n\n");fflush(stdin); //这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main(); //返回主函数
}int pinx() //输出平行四边形 函数
{ int s1,s2,s3,s;printf("【3】平行四边形 行数: ");scanf("%d",&s);printf("\n\n");for(s3=1;s3<=s;s3++){printf("\t");for(s1=1;s1<=s-s3;s1++)printf(" ");for(s2=1;s2<=s;s2++)printf("* ");printf("\n");}printf("\n\n");fflush(stdin); //这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main(); //返回主函数
}
int ling() //输出菱形 函数
{ int s1,s2,s3,s4,s5,s,row;printf("【4】菱形 行数: ");scanf("%d",&s);printf("\n\n");row=s/2;if(s%2==0) //输出行数为 偶数 {for(s1=1;s1<=s;s1++){if(s1<=row){printf("\t");for(s2=1;s2<=row-s1;s2++)printf(" ");for(s3=1;s3<=s1*2-1;s3++)printf("* ");printf("\n");}else{printf("\t");for(s4=1;s4<=s1-row-1;s4++)printf(" ");for(s5=1;s5<=(s-s1)*2+1;s5++)printf("* ");printf("\n");}}}else //输出行数为 奇数 { row++;for(s1=1;s1<=s;s1++){if(s1<=row){printf("\t");for(s2=1;s2<=row-s1;s2++)printf(" ");for(s3=1;s3<=s1*2-1;s3++)printf("* ");printf("\n");}else{printf("\t");for(s4=1;s4<=s1-row;s4++)printf(" ");for(s5=1;s5<=(s-s1)*2+1;s5++)printf("* ");printf("\n");}}}printf("\n\n");fflush(stdin); //这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main(); //返回主函数
}
这篇关于输出图形(循环程序,任意字符) 三角形、矩形、平行四边形、菱形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!