1. c语言编程题:打印下面的图形
这个主要就是ij的关系表
然后找到空格的规律
给你点提示,因为这个是对称的,所以可以用对称的ij来实现
#include<stdio.h>
#include<math.h>
voidmain()
{inti,j,k;
for(i=-4;i<=4;i++)
{
for(k=1;k<=2*abs(i);k++)
printf("");
for(j=1;j<=2*(9-2*abs(i));j++)
printf("*");
printf(" ");
}
}
如果还有疑问再问吧
2. 怎么用C语言打印九九乘法表的一半,主对角线的那部分
#include "stdio.h"
int main()
{
int i,j,result
for (i=1;i<10;i++) //打印行
{
for(j=1;j<10;j++) //打印列
{
if(j<=i) //if语句取消重复的表达
{
result=i*j; //result保存结果
printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占3位*/
}
}
printf(" "); //每一行后换行
}
}
运行结果
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
(2)用c语言打印沙漏的一半扩展阅读
1、九九乘法表,乘法表的两个乘数是1~9的循环,竖着看每一列的第一个数依次是1,2,3....9,。横着看每一行的第二个数依次是1,2,3...9。
2、既然乘数是1~9的循环,而每一列的第一个数比前一列多1,每一行的第二个数同样比上一行多1,所以可以定义两个变量,每次循环比上次加1即可实现。由于有两个乘数,需要两个循环语句。
3. 急啊,用c语言编程一个星号组成的沙漏图形,行数为n,如n=5是*****就要代码,快!!! *** * *** *****
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。
4. c语言打印沙漏
#include<stdio.h>
int main()
{
int i=0;
int j=0;
int n;
printf("请输入行数:");
scanf("%d",&n);
for(;i<n;i++)
{
printf("* * * * * *\n");
}
printf(" * * * *\n");
printf(" * * \n");
printf(" * * * *\n");
for(;j<n;j++)
{
printf("* * * * * *\n");
}
return 0;
}
5. c语言设置光标 取消沙漏
CCmdTarget类定义BeginWaitCursor()、EndWaitCursor()和RestoreWaitCursor()3个成员函数处理等待光标。BeginWaitCursor()将光标设置为沙漏形状,该函数有可能被程序框架调用,通知用户状态忙,例如当加载和存储文档时。EndWaitCursor()将光标恢复为沙漏之前的形状,一般与BeginWaitCursor()配合使用。
在实际编程中,在一个比较耗费机时的处理前应该主动调用BeginWaitCursor()设置光标,在处理结束时要调用EndWaitCursor()恢复光标。
void CWaitCursorDoc::LoadFile(char * Filepath)
{
//显示沙漏光标
BeginWaitCursor();
//耗费机时的处理过程
TRACE("正在装入文件,请等待.../n");
......
//恢复为沙漏前的光标形状
EndWaitCursor();
}
如果在BeginWaitCursor()和EndWaitCursor()之间的处理中,弹出了模式对话框,光标会由沙漏变为标准形状(通常是标准箭头)。为处理这种情形,可以在对话框关闭后,调用成员RestoreWaitCursor()重新将光标设置回沙漏形状,直到处理结束后调用EndWait Cursor()。例如:
void CWaitCursorDoc::LoadFile(char * Filepath)
{
WIN32_FIND_DATA FindData;
//显示沙漏光标
BeginWaitCursor();
//耗费机时的处理过程
if(::FindFirstFile(Filepath,&FindData)==INVALID_HANDLE_VALUE)
{
TRACE("打开文件出错,请重新指定文件/n");
CFileDlg dlg;
dlg.DoModal();
//恢复光标的沙漏形状
RestoreWaitCursor();
}
TRACE("正在装入文件,请等待.../n");
......
//恢复沙漏前的光标形状
EndWaitCursor();
}
但如果弹出的是MessageBox()消息框,就不必调用RestoreWaitCursor(),光标会自动恢复为沙漏。
在非CCmdTarget派生类中,可以使用CWaitCursor类设置等待光标。该类的构造函数和析构函数相当于CCmdTarget::BeginWaitCursor()和CCmdTarget::EndWaitCursor(),成员函数Restore()相当于CCmdTarget:: RestoreWaitCursor()。
MFC中文手册中的解释如下:
CWaitCursor
CWaitCursor没有基类。
CWaitCursor类提供了显示等待光标的直接方式,当你进行冗长的操作时,它通常显示出一个沙漏。好的Windows编程方式要求你在执行耗用大量时间的操作时显示等待光标。
如果要显示等待光标,仅需在进入执行冗长操作的代码之前定义一个CWaitCursor变量。整个对象的构造函数自动地显示等待光标。
当对象超出作用域时(在定义了CWaitCursor对象的代码块的末尾),它的析构函数将光标设为原来的光标。换句话说,该对象自动执行必要的清除工作。
注意:
由于它们的构造函数和析构函数的工作方式,CWaitCursor对象总是被定义为局部变量__它们从不被定义为全局变量,也不用new来分配。
如果你执行了可能会使光标改变的操作,比如显示消息框或对话框,则应调用Restore成员函数以恢复光标。即使当前正在显示等待光标也可以调用Restore函数。
显示等待光标的另一种方式是使用CCmdTarget::BeginWaitCursor和CCmdTarget::EndWait Cursor的组合,可能还有CCmdTarget::RestoreWaitCursor。但是,CWaitCursor更易于使用,因为你在完成了冗长的操作之后不必将光标恢复到原来的光标。
注意:
MFC使用虚拟函数CWinApp::DoWaitCursor来设置和恢复光标。你可以重载这个函数以提供自定义的表现方式。
#include
6. 用c语言输出沙漏图形。 123456789 2345678 34567 456 5 456 34567 2345678 123456789
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <assert.h>
#include <malloc.h>
#include <string.h>
#include <time.h>
#define WIDTH 512
#define HEIGHT 512
void main( )
{
FILE *fp;
// unsigned char a;
int imgsize;
int i,j;
int b[128*128]={128};
int r[128*128]={0};
int g[128*128]={0};
int a[3*128*128]={0};
// float x,y;
printf("%d",b[0]);
imgsize=WIDTH*HEIGHT;
for(i=0;i<128*128;i++)
{
b[i]=128;
}
printf("%d",b[0]);
//unsigned char *raw;
// raw=(unsigned char*)calloc(imgsize,sizeof(unsigned char));
// a=(unsigned char*)calloc(imgsize,sizeof(unsigned char));
// R=(int*)calloc(imgsize,sizeof(int));
// G=(int*)calloc(imgsize,sizeof(int));
// B=(int*)calloc(imgsize,sizeof(int));
for (i=0;i<128;i++) {
for(j=0;j<128;j++){
r[i*128+j]=(i/128)*r[i]*(j/128);
g[i*128+j]=(i/128)*r[i]*(j/128);
}
}
for (i=0;i<128*128;i++)
{
a[i*3]=r[i];
a[i*3+1]=g[i];
a[i*3+2]=b[i];
}
fp=fopen("d:\\mm.doc","wb");
fwrite( a,1,3*128*128,fp);
fclose(fp);
// x=g[i]/r[i]; y=b[i]/r[i];
// printf("%d",r[0]);
}
/*;
// float x,y;
// x=g[i]/r[i]; y=b[i]/r[i];
int i;
for (i=0;i<128;i++) {
b[i]=(i/128)*r[i];
g[i]=(i/128)*r[i];
}
for (i=0;i<128;i++)
{
a[i*3]=r[i];
a[i*3+1]=g[i];
a[i*3+2]=b[i];
}
fp=fopen("m.raw","wb");
fwrite( a[i],1,imgsize,fp);
fclose(fp);
printf(" %f ", a[i]);
}*/
7. c语言打印沙漏
写一个函数a,用于打印一行, 弄几个参数, 分别控制前面的空格的数量和*的熟练
写个函数b, 在里面调用a, 传入不同的参数, 自己多练练, 没人会往你手里塞钱的, 需要自己探索
8. 沙漏C语言命令
用解析几何的做法比较好,就是那两条直线外的点为空白,直线内的区域为*即可,使用坐标法解。给你个框架,自己添加个头文件和return,你应该知道怎么做吧。
for(inti=0;i<9;i++)
for(intj=0;j<9;j++)
if(j>i&&(j-9<9-i))
printf("*");
else
printf("");
printf(" ");
9. C语言打印字符串的一部分的方法
你现在要使用的是printf()函数,而不是sprintf()函数。请看下例:
#
include
#
include
void
main
(void);
void
main
(void)
{
char
*
source_str
=
"THIS
IS
THE
SOURCE
STRING"
;
/
*
Use
printfO
to
print
the
first
11
characters
of
source_str.
*
/
printf("First
11
characters:
'
%11.
lls'\n"
,
source_str);
/
*
Use
printf()
to
print
only
the
last
13
characters
of
source
_str.
*
/
printf("Last
13
characters:'%13.13'\n",
source_str+(strlen(source_str)-13));
}
上例的打印输出如下所示:
First
11
characters:
'THIS
IS
THE'
Last
13
characters:'SOURCE
STRING'
在上例中,第一次调用printf()函数时,通过指定参数"%11.11s",迫使printf()函数只打印11个字符的长度,因为源字符串的长度大于11个字符,所以在打印时源字符串将被截掉一部分,只有头11个字符被打印出来。第二次调用printf()函数时,它将源字符串的最后13个字符打印出来,其实现过程为:
(1)用strlen()函数计算出source_str字符串的长度,即strlen(source_str)。
(2)将source_str的长度减去13(13是将要打印的字符数),得出source_str中剩余字符数,且pstrlen(source_str)-13。
(3)将strlen(source_str)-13和source_str的地址相加,得出指向source_str中倒数第13个字符的地址的指针;即source_str+(strlen(source_str)-13)。这个指针就是printf()函数的第二个参数。
(4)通过指定参数“%13.13s”,迫使printf()函数只打印13个字符的长度,其结果实际上就是打印源字符串的最后13个字符。
10. c语言:打印沙漏求大神讲解意思
#include<stdio.h>
intmain()
{intsum,b,i,q,t,k,j,g,N;
charc;
sum=1;b=1;
scanf("%d%c",&N,&c);
for(i=1;sum<=N;i++)
{ b=b+2;//3+5+...
sum=sum+b*2;}//当sum大于N时结束循环,所需要的sum应为sum-2*b
i=i-1;
q=i;//保存沙漏的下半部分有多少行
sum=sum-2*b;//最大的沙漏所需要的字符数
k=0;
for(j=i;j>=1;j--)//后面没什么好说的,就是正常的分成上下两部分,然后找行数和每行空格、字符数的关系
{for(g=1;g<=k;g++)
printf("");
for(t=1;t<=2*j-1;t++)
printf("%c",c);
printf(" ");
k++;
}
k=k-2;
for(j=2;j<=q;j++)
{for(g=1;g<=k;g++)
printf("");
for(t=1;t<=2*j-1;t++)
printf("%c",c);
printf(" ");
k--;}
printf("%d",N-sum);
return0;
}