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

c語言編程列印沙漏

發布時間: 2023-05-22 17:49:19

c語言作業題目:編程列印如下圖形

#include<stdio.h>
void main()
{
int i,j;
for(i=1;i<=5;i++)
for(j=1;j<=2;j++)
{
if(i==1&&j==2||i==5&&j==2)printf(" ");
else printf("* ");
if(j==2)printf("芹橋耐穗\n");
}
}

/*運行結果:嫌畝猛
*
* *
* *
* *
*
*/

㈡ 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;
}

㈢ C語言輔導:VC資料庫編程中的列印控制

VC資料庫編程中的列印控制比較復雜,但它也給程序員的靈活搭卜性,而這種靈活性正是我們需要的。因為各行業、部門的報表一般都不太規整,特別是表頭部分,二、三重嵌套的情況很常見。下面我們就開發中碰到的一些問題與同行們探討。
Document/View框架之外的列印
熟悉VC的程序員都知道Microsoft 的AppWizard生成的應用程序框架中,可以選擇免費的列印及列印預覽功能,但前提是必須選擇Document/View結構。然而我們的資料庫應用中一般都不需要一個文檔類來保存文檔,因為資料庫(源)就是我們的文檔,數據一般是在一知凱穗個對話框或視中與用戶交互,我或修改結果直接通過資料庫引擎寫回資料庫中。我們的程序主框架要麼是基於對話框的、要麼是基於無文檔類的單視(或多視)結構,在這種情況下,AppWizard 在列印控制部分並不能給我們任何幫助,只能自己負責完成列印控制。
總結起來,一次列印操作要遵循以下步驟:
1.得到或生成列印設備場景,可通過顯示列印對話框讓用戶選擇列印機與紙張等設置,也可在程序中直接取系統預設列印機設置,然後根據報表格式設置紙張大小和列印方向;
2.開始在該設備場景中的一次列印作業,實際列印報表內容,終止列印作業;
3.清除列印設備場景,完成本次列印操作。
在下面的例子中,我們在一個對話框中讓用戶選擇列印某個報表,沒有顯示列印設置對話框,而是直接取系統預設列印機設置,然後根據報表格式設置紙張大小和列印方向。之所以這樣做是因為各行業、部門的報表格式一般都是至上而下的統一格式。函數DoPreparePrintDC()、DoPrint()和DoClearPrintDC()分別對應上述的三個步驟:
BOOL CMyDialog::DoPreparePrintDC()
// 准備列印場景
{
#defineFONTSIZE 14
// 獲取列印機的設備屬性
CPrintDialog dlgPrint( FALSE );
// 得到當前系統預設列印機設置
if(!dlgPrint.GetDefaults()) return FALSE;
LPDEVMODE pDM=dlgPrint.GetDevMode();
if(pDM==NULL) return FALSE;
::GlobalUnlock(pDM);
// 聯結列印DC,m—hDC是定義為HDC m—hDC的類成員變數
m—hDC=dlgPrint.CreatePrinterDC();
// m—DC是定義為CDC m—DC的類成員變數
if(!m—DC.Attach(m—hDC) return FALSE;
// 設置列印標志
m—DC.m—bPrinting=TRUE;
short cxInch=m—DC.GetDeviceCaps(LOGPIXELSX);
short cyInch=m—DC.GetDeviceCaps(LOGPIXELSY);
// 建立列印字體,m—fontPrint 是定義為CFont m_fontPrint的類成員變數
if(!m—fontPrint.CreateFont(MulDiv(FONTSIZE, -cyInch, 72),0,0,0, FW—NORMAL,0,0,0, GB2312—CHARSET, OUT—CHARACTER—PRECIS, CLIP—CHARACTER—PRECIS,DEFAULT—QUALITY, DEFAULT—PITCH|FF—DONTCARE, HFONTNAME)
return FALSE;
return TRUE;}
void CDlgDataPrint::DoClearPrintDC()
// 清除列印場景
{ m—fontPrint.DeleteObject();
m—DC.Detach();
::DeleteDC( m—hDC );}
void CDlgDataPrint::DoPrint()
// 實際列印輸出
{ if(DoPreparePrintDC()==FALSE) return;
// 開始一次列印作業孫譽
CString str;
str.LoadString(AFX—IDS—APP—TITLE);
DOCINFO di;
::ZeroMemory (&di, sizeof (DOCINFO));
di.cbSize=sizeof (DOCINFO);
di.lpszDocName=str;
m—DC.StartDoc(&di);
m—DC.StartPage();
// 將列印字體選進設備場景
CFont* pOldFont=m—DC.SelectObject(&m—fontPrint);
// 輸出報表,建議用CDC::DrawText()函數便於控制列印范圍
...
// 終止列印作業
m—DC.EndPage();
m—DC.EndDoc();
m—DC.SelectObject(pOldFont);
// 清除列印場景
DoClearPrintDC();}
表格問題
對格式固定或表頭、表體比較復雜的情況,特別是有嵌套表格的情況下,我們認為先將列印結果以文本形式寫入一臨時文件,然後再對文件進行列印輸出的方法會使事情簡單一些。因為這樣在程序中就可以只關心數據(表體)的輸出,而表頭則可以固定格式存入資料庫。
但是,我們在對文本形式的報表進行列印輸出時卻發現一個有趣的現象,有時輸出結果的相鄰兩行表格豎線不能對齊,而有時又可以。原來是 Windows 圖形輸出的問題,只要我們在建立列印字體時,字體的高度是偶數就可保證豎線對齊,如果是奇數則不能對齊。知道了原因,在建立列印字體時只需加入如下代碼即可:
...
#defineFONTSIZE 14
#defineHFONTNAME ″微軟雅黑″
// 建立列印字體,m—fontPrint是定義為CFont m—fontPrint的類成員變數
int nFontHeight=MulDiv(FONTSIZE,-cyInch, 72);
if(nFontHeight % 2) nFontHeight++;
if(!m—fontPrint.CreateFont(nFontHeight, 0, 0, 0, FW—NORMAL, 0, 0,0,GB2312—CHARSET, OUT—CHARACTER—PRECIS, CLIP—CHARACTER—PRECIS,DEFAULT—QUALITY, DEFAULT—PITCH | FF—DONTCARE, HFONTNAME))
return FALSE;
...
還有一點小技巧,輸出文本形式的報表時,對報表的橫線只需要輸出其正常高度的二分之一或三分之一,這樣報表看起來更緊湊美觀。這也是我們在前面建議用CDC::DrawText()進行繪制輸出的原因。

㈣ c語言列印沙漏

寫一個函數a,用於列印一行, 弄幾個參數, 分別控制前面的空格的數量和*的熟練

寫個函數b, 在裡面調用a, 傳入不同的參數, 自己多練練, 沒人會往你手裡塞錢的, 需要自己探索

㈤ C語言編程問題

2、
#include<慧鋒stdio.h>稿型
int main()
{
int j,k, n=4;
for( k=0;k<n;k++ )
{
for( j=0; j<n-k-1; j++ ) printf("鍵碧猜 ");
for( ; j<n; j++ ) printf("*");
printf("\n");
}
}

3、
int average(int a[][3], int n)
{
int k, sum = 0;
for( k=0; k<4; k++ )
sum += a[k][n];
return sum / 4;
}

4、
int isprime( int x )
{
int k;
if( x==2 ) return 1;
if( x<2 ) return 0;
for( k = 2; k < x; k++ )
if( !(x%k) ) return 0;
return 1;
}

㈥ 急啊,用c語言編程一個星號組成的沙漏圖形,行數為n,如n=5是*****就要代碼,快!!! *** * *** *****

1、打開visual C++ 6.0-文件-新建-文件-C++ Source File。

㈦ c語言編程星號輸出沙漏從上到下依次星數為7,5,3,1謝謝

代碼資料:

#include "stdio.h"

int main(int argc,char *argv[]){

char i,j;

for(i=4;i>0;i--){

for(j=4-i;j-->0;putchar(' '));

for(j=0;j++<i+i-1;putchar('*'));

putchar(' ');

}

return 0;

}

㈧ C語言 使用循環結構編程列印如下圖形: * * * * * * * * * * * * * * * * * * * * * * * * *

如果你的代碼是直接貼進來的,那麼問題出在其中的分號為中文字元。

C語言程序中的中文字元只能出現在注釋和字元串中。

把分號全部替換編譯沒問題的:
#include <stdio.h>
void main()
{
int i,j,n;
printf("\nPlease Enter n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}

Please Enter n:5
*
***
*****
*******
*********

㈨ c語言 輸出*形沙漏

#include <stdio.h >
void main ()
{
int i ,j, k, n;
scanf ("%d ",&n);

for (i =0 ;i<n;i++)
{
for (j =0 ;j <2*n;j++)
printf ("*");
printf ("\n");
}

for (i=1; i<=n-2;i++)
{for (j =1 ;j <=i;j++)
printf (" ");
for (k =1;k<=2*n-2*i;k++)
printf ("*");
printf ("\n");}

for (i =2;i<=n-2;i++)
{for(j =2;j>=i;j--)
{printf (" ");
}

for(k=1;k<=2*n-2*i;k++)
printf("*");
printf ("\n");}

for (i =0;i<n;i++)
{for (j=0;j<2*n;j++)
printf ("*");
printf ("\n");}

}

因電腦故障這個程序沒有調試,若有錯誤請您見諒

㈩ C語言空心沙漏,求大佬幫忙碼出來,已經給了一個模板了。

#include<stdio.h>
voidsand(intn,intc)
{inti,j;
for(i=n;i>0;i-=2)
{for(j=1;j<=(n-i)/2;j++)
printf("");
for(j=1;j<=i;j++)
putchar(c);
putchar(' ');
}
for(i=3;i<=n;i+=2)
{for(j=1;j<=(n-i)/2;j++)
printf("");
for(j=1;j<=i;j++)
putchar(c);
putchar(' ');
}
}
main()
{sand(9,'a');
}