C語言m5
❶ C語言報數游戲
//說明:我是ghalan,這是我編中叢的程序,編譯通過的。且我用數據模擬驗證過的,測試數據都通過了。樓上的那位的答案我驗證過不正確了。我的還有詳細注釋,可以看出明顯的編程思想。
#include <stdio.h>
void main()
{
int a[100][5];
int i,j,n;//n表示案例個數
int sum=0;//統計出局人數
int t=0;//計數器
int k;//數到k後出局
scanf("%d",&n);
for (i=0;i<n;i++)
for (j=0;j<5;j++)
scanf("%d",&a[i][j]);//輸入數據
//下面模擬該過程
for (i=0;i<n;i++){
k=a[i][0];//取第一個人手中的數
sum=0;
t=0;
for (j=1;sum<襲中4;j++){
if (j%5==0) j=0;//控制循環
if (a[i][j]!=0) t=t+1;//計數
if ((t%k==0)&&(t!=0)) {
k=a[i][j];//取出局人的數
a[i][j]=0;/賣禪櫻/出局標記
sum=sum+1;//計數出局人數
t=0;//計數清零
}
}
}
//輸出結果
for (i=0;i<n;i++)
for (j=0;j<5;j++)
if (a[i][j]!=0) printf("%d\n",j+1);
}
❷ C語言編程:輸入5名學生3門課程成績
您好!下面是答悉我液蘆寫的程序希望對您有用!
#include<stadio.h>
void main()
{
int x1,x2,x3,x4,x5,y1,y2,y3,y5,y5,z1,z2,z3,z4,z5,m1,m2,m3,m4,m5,n1,n2,n3;
printf("輸入鬧舉帶5名同學的3門課程的成績 x1,x2,x3,x4,x5,y1,y2,y3,y5,y5,z1,z2,z3,z4,z5\n");
scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",&x1,&x2,&x3,&x4,&x5,&y1,&y2,&y3,&y4,&y5,&z1,&z2,&z3,&z4,&z5);
n1=(x1+x2+x3+x4+x5)/5;
n2=(y1+y2+y3+y4+y5)/5;
n3=(z1+z2+z3+z4+z5)/5;
m1=(x1+y1+z1)/3;
m2=(x2+y2+z2)/3;
m3=(x3+y3+z3)/3;
m4=(x4+y4+z4)/3;
m5=(x5+y5+z5)/3;
printf("%d,%d,%d,%d,%d,%d,%d,%d",m1,m2,m3,m4,m5,n1,n2,n3);
}
❸ C語言中printf有什麼作用
1.調用格式為 printf("<格式化字元串>", <參量表>);
其中格式化字元串包括兩部分內容: 一部分是正常字元, 這些字元將按原樣輸出; 另一部分是格式化規定字元, 以"%"開始, 後跟一個或幾個規定字元, 用來確定輸出內容格式。參量表是需要輸出的一系列參數, 其個數必須與格式化字元串所說明的輸出參數個數一樣多, 各參數之間用","分開, 且順序一一對應, 否則將會出現意想不到的錯誤。
2.格式化字元
%d 十進制有符號整數
%u 十進制無符號整數
%f 浮點數
%s 字元串
%c 單個字元
%p 指針的值
%e 指數形式的浮點數
%x, %X 無符號以十六進製表示的整數
%0 無符號以八進製表示的整數
%g 自動選擇合適的表示法
說明:
(1). 可以在"%"和字母之間插進數字表示最大場寬。 例如: %3d 表示輸出3位整型數, 不夠3位右對齊。 %9.2f 表示輸出場寬為9的浮點數, 其中小數位為2, 整數位為6, 小數點佔一位, 不夠9位右對齊。%8s 表示輸出8個字元的字元串, 不夠8個字元右對齊。 如果字元串的長度、或整型數位數超過說明的場寬, 將按其實際長度輸出。 但對浮點數, 若整數部分位數超過了說明的整數位寬度, 將按實際整數位輸出; 若小數部分位數超過了說明的小數位寬度, 則按說明的寬度以四捨五入輸出。另外, 若想在輸出值前加一些0, 就應在場寬項前加個0。 例如: %04d 表示在輸出一個小於4位的數值時, 將在前面補0使其總寬度為4位。如果用浮點數表示字元或整型量的輸出格式, 小數點後的數字代表最大寬度, 小數點前的數字代表最小寬度。 例如: %6.9s 表示顯示一個長度不小於6且不大於9的字元串。若大於9, 則第9個字元以後的內容將被刪除。
(2). 可以在"%"和字母之間加小寫字母l, 表示輸出的是長型數。例如: %ld 表示輸出long整數, %lf 表示輸出double浮點數。
(3). 可以控制輸出左對齊或右對齊, 即在"%"和字母之間加入一個"-" 號可說明輸出為左對齊, 否則為右對齊。例如: %-7d 表示輸出7位整數左對齊,%-10s 表示輸出10個字元左對齊。
3. 一些特殊規定字元
\n換行
\f清屏並換頁
\r回車
\t Tab符
\xhh表示一個ASCII碼用16進表示,
其中hh是1到2個16進制數
int a=1234; printf("a=%d\n",a); //a=1234 printf("a=%2d\n",a); //a=1234 超過2位,按實際輸出 printf("a=%6d\n",a); //a= 1234 不足6位,右對齊 printf("a=%06d\n",a); //a=001234 不足6位,前面補0 printf("a=%-6d\n",a); //a=1234 '-'左對齊 int* i=&a; printf("i=%p\n",i); //i=0012FF44 輸出指針的值,即地址 float m=8888.8888; //float 單精度型浮點數 有效位數是6位或7位,根據不同的浮點數會有不同 float m1=8888.8888f; //在後面加上f或F,編譯警告:truncation from'const double'to 'float' //編譯器默認浮點數為double float m2=8888.888f; double n=8888.8888; double n1=8888888888.88888888; //double 雙精度型浮點數 有效位數是15位 printf("m=%f\n m1=%f\n m2=%f\n n=%lf\n n1=%f\n",m,m1,m2,n,n1); // m=8888.888672 // m1=8888.888672 // m2=8888.887695 // n=8888.888800 // n1=8888888888.888889 //%f的默認輸出小數位數就是6位不管有沒有l /*printf的%f說明符的確既可以輸出float型又可以輸出 double型。 根據"默認參數提升"規則(在printf這樣的函數的 可變參數列表中 ,不論作用域內有沒有原型,都適用這一規則)float型會被提升為double型。因此printf()只會看到 雙精度數。嚴格地講,%lf在printf下是未定義的,但是很多系統可能會接受它。要確保可移植性,就要堅持使用%f。*/ printf("m4=%4.2f\n",m); //寬度總共4位,小數兩位,小數點一位,整數一位,這里整數超過寬度規定,按實際整數位輸出 printf("m5=%9.6f\n",m); //浮點數小數部分不足6位,右對齊 printf("m6=%9.2f\n",m); //整數部分不足6位,右對齊;小數部分超過2位,四捨五入 char c[20]="Hello,world!"; printf("c=%s\n",c); printf("c=%6.9s\n",c); //c=Hello,wor 6.9s表示輸出一個長度長度不小於6且不大於9的字元串。若大於9, 則第9個字元以後的內容將被刪除。