當前位置:首頁 » 編程語言 » 用c語言列印沙漏的一半
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

用c語言列印沙漏的一半

發布時間: 2022-06-29 19:46:03

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;

}