技术标签: visual c++ c++ 笔记 c语言 vc++ 开发语言
A
BBB
CCCCC
DDDDDDD
解法一:
#include <stdio.h>
int main(void)
{
int n,i,b,c;
char ch = 'A';
printf("请输入你要打印的行数:\n");
scanf("%d",&n);
for(i = 1;i <= n;i++) //i是金字塔行数 大小由输入值n确定
{
for(b = 0;b < n - i;b++) //b是一行中空格的个数
{
putchar(' ');
}
for(c = 0;c < 2 * i - 1;c++) //c是一行中的字母的个数
{
printf("%c",ch);
}
printf("\n");
ch++; //打印完一行,ch再进行++;
}
return 0;
}
解法二:
#include<stdio.h>
int main()
{ int i,j,n;
scanf("%d",&n);
while(n>=1)
{if(n>26)n=26;
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)printf(" ");
for(j=1;j<=2*i-1;j++)printf("%c ",i+'A'-1);
printf("\n");}
scanf("%d",&n);
}
getchar();
}
A
B C
D E F
G H I J
K L M N O
P Q R S T U
V W X Y Z 0 1
2 3 4 5 6 7 8 9
Press any key to continue
#include <stdio.h>
void main() {
char zm[]={'A','B','C','D','E','F','G','H','I',
'J','K','L','M','N','O','P','Q','R','S','T',
'U','V','W','X','Y','Z','0','1','2','3','4',
'5','6','7','8','9'
};
int i,j,k,cnt = 0;
for(i = 0;i < 8;i++) {
for(k = 10 - i;k >= 0;k--) printf(" ");
for(j = 0;j < i + 1;j++)
printf("%c ",zm[cnt++]);
printf("\n");
}
}
解法二:
#include "stdio.h"
void main()
{
char j=1;
int i=1,k=1,s=1;
while(i<=8)
{
if(k<9-i)
{
printf(" ");
k++;
}
else
{
if(j<=s)
{
if(j<=26)
printf("%c ",j+64);
else printf("%c ",j+21);
j++;
}
else
{
printf("\n");
i=i+1;
s=s+i;
k=1;
}
}
}
}
结果为:
A
ABA
ABCBA
ABCDCBA
提示:使用一个外部循环来处理行,在每一行中使用三个内部循环,一个处理空格,一个以升序打印字母,一个以降序打印字母。
解法一:
#include <stdio.h>
int main()
{
int i,j; //用于计数
char ch ;
char ch1 = 'A';//从ch1开始
char ch2;
printf("请输入一个大写字母:");
ch = getchar();
for(i = 0; i < ch-'A'+1; i++) //行数
{
for(j = 0; j < ch-'A'+1-i; j++) //每行的空格数
{
printf(" ");
}
for(j = 0; j < 2*(i+1)-1; j++)
{
if(j <= i)//前半段
{
printf("%c",ch1+j); //通过 j++实现字母的递增
ch2 = ch1+j-1; //接收累加结束时最大的值
}
if(j > i) //后半段
{
printf("%c",ch2--); //通过ch--实现递减
}
ch1 = 'A'; //重置循环初始值
}
printf("\n");
}
return 0;
}
结果为:
解法二:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int line;//代表行数
int i;
char letter,ch;
printf("请输入一个大写字母:");
scanf("%c",&letter);
for(line=0;line<=letter-'A';line++)
{
for(i=0;i<letter-'A'-line;i++)
printf(" ");
for(ch='A';ch<=('A'+line);ch++) //升序输出字母
printf("%c",ch);
ch-=2;
while(ch!='A'-1)
printf("%c",ch--);
printf("\n");
}
return 0;
}
解法三:
#include<stdio.h>
int main()
{
int num,i;
char c1,c3,c4;
char c2='A';
printf("请输入一个金字塔底层的字母:\n"); //提示用户输入数据
scanf("%c",&c1); //读取用户输入的数据
num=c1-c2;
for(;c2<=c1;c2++)
{
for(i=0;i<num;i++) //使用嵌套循环打印金字塔左侧的空格区域
{
printf(" ");
}
for(c4='A';c4<=c2;c4++) //使用嵌套循环打印左侧正序字母
{
printf("%c",c4);
}
for(c4-=2;c4>='A';c4--) //使用嵌套循环打印金字塔右侧倒序字母
{
printf("%c",c4);
}
printf("\n"); //切换金字塔层数
num--;
}
getchar();
getchar();
return 0;
}
解法四:
/*
输出字母金字塔
*/
#include <stdio.h>
int main()
{
int i, j; // 循环变量
int n; // 输出的行数
char maxLetr; // 最大的字母
char ch[26]; // 存储26个字母
for(i=0; i<26; i++)
{
ch[i] = 'A' + i;
}
printf("请输入一个大写字母作为金字塔最大的英文字母: \n");
scanf("%c", &maxLetr);
getchar(); // 吸收回车
// 排除非法输入
while(maxLetr<'A' || maxLetr>'Z')
{
printf("输入错误,请重新输入\n");
scanf("%c", &maxLetr);
getchar(); // 吸收回车
}
for(i=0; i<26; i++) // 用以确定行数n
{
if(ch[i] == maxLetr)
{
n = i + 1;
}
}
printf("根据您的输入,生成字母金字塔\n");
for(i=1; i<=n; i++) // 外层控制行数
{
for(j=0; j<n-i; j++) // 输出空格
{
printf(" ");
}
for(j=0; j<i; j++) // 打印升序字母
{
printf("%c",ch[j]);
}
for(j=0; j<i-1; j++) // 打印降序字母
{
printf("%c",ch[i-j-2]); // 唯一的难点: 找规律
}
printf("\n");
}
return 0;
}
解法五:
#include <stdio.h>
int main(void) {
char letter;
char temp;
int flag; //相当与一个“指针”,用来判断何时到达中间位置
int i, j; //两层循环因子 i用来循环行数,j用来循环字符输出
printf("input letter:\n");
fflush(stdout);
scanf_s("%c", &temp);
for (i = 0; i < 5; i++) {
flag = 0;
letter = temp - 1;
for (j = 4; j > i; j--) {
printf(" ");
}
while (flag <= i) {
letter += 1;
printf("%c", letter);
flag++;
}
flag -= 1;
if (flag != 0) {
while (flag) {
letter -= 1;
printf("%c", letter);
flag--;
}
}
printf("\n");
}
system("pause");
return 0;
}
从键盘输入一个整数n,输出n行的字母金字塔.如下图所示的是一个n为6的字母金字塔Input输入一个整数n。Output输出n行的字母金字塔。SampleInput6SampleOutputABBCCCDDDDEEEEEFFFFFFHINT… 从键盘输入一个整数n,输出n行的字母金字塔.如下图所示的是一个n为6的字母金字塔Input输入一个整数n。Output输出n行的字母金字塔。Sample Input6Sample Output A B B C C C D D D D E E E E EF F F F F FHINT每个字符后面都有空格
#include <stdio.h>
void main()
{
unsigned long a[35]={0,1};
unsigned int i,j,n;
printf("请输入字母金字塔的层数(最多26层)=");
scanf("%d",&n);
if(n>26)n=26;
for(i=0 ;i<n ;i++,printf("\n")) //i表示层,每次结束后换行
{
for(j=i ;j<n ;j++) printf(" "); //加空格维持金字塔形状
for(j=0 ;j<=i ;j++)printf("%c ",'A'+i); //打印字母
}
}
结果为:
解法二:
#include <stdio.h>
int main()
{
int i, j;
char input, alphabet = 'A';
printf("输入大写字母: ");
scanf("%c",&input);
for(i=1; i <= (input-'A'+1); ++i)
{
for(j=1;j<=i;++j)
{
printf("%c", alphabet);
}
++alphabet;
printf("\n");
}
return 0;
}
A
BAB
CBABC
DCBABCD
EDCBABCDE
FEDCBABCDEF
GFEDCBABCDEFG
#include<stdio.h>
int main()
{
int i,j;
char c='A';
for(i=0;i<7;i++)
{
for(j=0;j<7-i;j++)
putchar(' ');
for(j=0;j<=i;j++)
putchar(c+i-j);
for(j=j-2;j>=0;j--)
putchar(c+i-j);
printf("\n");
}
return 0;
}
结果为:
题目:
输入一个大写的英文字母,输出空心的字母金字塔。
输入格式:
一个大写英文字母。
输出格式:
一个空心的大写英文字母金字塔,其中第1层的“A”在第1行的第40列,列从1开始计数。
输入样例:
E
1
输出样例:
A
B B
C C
D D
EEEEEEEEE
解法一:
#include<stdio.h>
int main(){
char x;
scanf("%c",&x); //输入最大的字母
int z = -1; //计数从第二行开始两次打印之间所需空格数
int a = x;
int i = 65; //表示从A开始(ascll码)
int q = 1;
while(q){
char b = i;
for(int k = 39; ;k--){ //注意从第40列打印A则前面需要39个空格
for(int j = k;j>0;j--){
printf(" ");
}
printf("%c",b);
if(k<39){ //用来判断是否不是第一行
for(int w = z;w>0;w--){
if(i!=x){ //判断不是最大字母值
printf(" ");
}else{
printf("%c",b);
}
}
printf("%c",b);
}
if(i!=x){
printf("\n");
}
z+=2;
i++;
b = i;
if(i>a){ //如果i大于所输入最大值则跳出循环
q = 0;
break;
}
}
}
return 0;
}
解法二:
#include<stdio.h>
/*
A 40第0行用i表示
B B 41
C C 42
D D 43
EEEEEEEEE 44
*/
int main() {
char letter,A='A';//金字塔尖字母A
scanf("%c",&letter);//输入金字塔底端字母
int cnt = letter - 'A' + 1;//应该有cnt行输出
int i = 0,line = 40;//第0行有40个字符
while(i < cnt){//如果输出未完成
int idx = line - (2 * i + 1);//第i行字母前应有idx个空格
int bottle = idx;//保留第i行字母前应有空格数idx
while(idx--){//第i行第一个字母前输出空格,数量为idx
printf(" ");
}
if(i < cnt - 1){//如果不是最后一行
printf("%c",A);//那么输出第一个字母
bottle++;//idx(索引)+1
while(++bottle < line){//如果不是第i行最后一个字符
printf(" ");//输出空格
}
// if(A!='A'){
if(i != 0){//如果不是第一行
printf("%c\n",A);//输出最后一个字母
}else{//如果是第一行
printf("\n");//回车
}//已经完成一行输出
A++;//字母+1
}else{//如果是最后一行
while(bottle++ < line){//用金字塔底端字母补齐该行字符数
printf("%c",letter);
}
}//完成金字塔底端字母输出
i++;//走到下一行
line++;//下一行的字符数+1
}//输出完成
return 0;
}
解法三:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
//函数功能:输出input层金字塔的第num行的内容。
//注意这里函数需要2个int参数
void a(int input,int num){
int i=1;
for(i=1;i<=40-num;i++){
printf(" ");
}
printf("%c",64+num);
if(num>1&&num<input){
int j=1;
for(j=1;j<=2*num-3;j++){//打印2n-3个空格
printf(" ");
}
printf("%c",64+num);
}else if(num==input){
int k=1;
for(k=1;k<=2*num-2;k++){//打印2n-2个字符
printf("%c",64+num);
}
}
printf("\n");
}
int main(void){
char input;
scanf(" %c",&input);
int input2=input-64;//将题目输入转化成我们需要的输入
int count=1;
for(count=1;count<=input2;count++){
a(input2,count);
}
return 0;
}
结果为:
文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr
文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc
文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8
文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束
文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求
文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname
文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立
文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码
文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词
文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限
文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定
文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland