⑴ c語言 輸入一個月份如何判斷奇數偶數
#include<iostream.h>
void main()
{
int a;
cout<<"請輸入月份:"<<endl;
cin>>a;
if (a%2==0) cout<<"是偶數"<<endl;
else cout<<"是奇數"<<endl;
}
⑵ C語言入門問題:輸入年份和月份,求該月有多少天
#include<stdio.h>
main(){
int year,mounth,days;
printf("input year,mounth ");
scanf("%d,%d",&year,&mounth);
if(mounth%2!=0||mounth==8){
days=31;//不管什麼年份,這幾個月天數都是固定的
}
else{
if(mounth==2){
if((year%4==0)&&(year%100!=0)||(year%400==0))
//判斷是否是閏年能被4整除不能被100整除,能被400整除的年份位閏年
days=29;
else
days=28;
}
else
days=30;
}
printf("該月份共有:%d天",days);
}
運行結果:
(2)c語言mount擴展閱讀:
printf()用法:
printf()函數的調用格式為:printf("<格式化字元串>",<參量表>)。
其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。
參量表是需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。
比如:
int a=5678;
printf("a=%d ",a);
輸出結果為a=5678。
⑶ 幫忙弄c語言編程
僅提供我的思路,希望對你有所幫助:
設a[i][j](i=0,…,n-1;j=0…m-1) 表示j位評委給i選手的評分
Main()
{ int i,j,m,n;
float min[i],max[i],a[i][j];
For(i=0;i<n;i++)
For(j=0;j<m;j++)
a[i][j]=getf (); //評分賦初值
For(i=0;i<n;i++)
{ For(j=0;j<m;j++)
{min[i]=max[i]=a[i][j]
if(max[i] <=a[i][j+1])
max[i] =a[i][j+1];
if(min[i] >=a[i][j+1])
min[i] =a[i][j+1];
} //選擇每組評分中的最高分和最低分
}
For(i=0;i<n;i++)
For(j=0;j<m;j++)
{
Average_score[j]= a[0][j];
Average_score[i]= Average_score[i]+a[i][j];
}
Average_score[i]= Average_score[i]-max[i]-min[i]);
Average_score[i]= Average_score[i]/(m-2);
} //計算出每個選手的平均得分(最後得分)
For(i=0;i<n;i++)
{
For(j=0;j<n;j++)
{ max_1[i] = Average_score[j];
if(max_1[i] <= Average_score[j+1])
max_1[i] = Average_score[j+1];-
}
Printf(max_1[i]=」%d\t」)
} //由大到小分數排序輸出
For(j=0;j<=m;j++)
{
For(i=0,i<=n,i++)
{c[i][j]= Average_score[i]-a[i][j];//計算出j評委評分與i學生最後得分的差異
c[i][j]=Abs( c[i][j]); //取絕對值,以加總估量評委的評分准確性
} //定義double c[i][j];
mount[j]= c[1][j]; //定義double mount[j];
For(i=1;i<n;i++)
{
mount[j]= Mount[j]+c[i][j];
}
d[j]= mount[j] /n; //定義double d[j]表示第j位評委的差異准確性;
}
For(j=0;j<m;j++)
Printf(d[j]=「%d\n」) //輸出j位評委的差異准確性;
⑷ 用C語言編程序"輸入月份,輸出對應的天數"
這個要考慮閏年,所以還要輸入年份
#include<stdio.h>
intmain(void)
{
intyear,mount;
intbuf[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};
printf("請輸入年份月份用空格隔開 ");
while(1)
{
scanf("%d%d",&year,&mount);
if(mount<13&&mount>0)
break;
else
printf("月份輸入錯誤請重新輸入年份月份用空格隔開 ");
}
if(mount!=2)
{
printf("本月有%d天 ",buf[mount]);
}
else
{
if(year%4==0&&year%100!=0||year%400==0?1:0)
printf("本月有29天 ");
else
printf("本月有28天 ");
}
return0;
}
⑸ 請問C語言中的標志位在什麼時候用,什麼時候用會出問題。謝謝
主要適用於位運算。
標志位操作:
Linux內核、wine、XFree86的代碼中都常常能見到一些這樣的標志位操作。
現在從Linux內核中的do_mount()函數中那些例子來記一下:
1949 if (flags & MS_NOEXEC)
1950 mnt_flags |= MNT_NOEXEC;
1956 flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE |
1957 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
1958 MS_STRICTATIME);
flags & MS_NOEXEC表示:
假設flags是二進制1111,MS_NOEXEC定義為十進制8,那麼二進制就是0100,那麼&操作執行完後,flags就是0100,不等於0,所以這行語句就是檢查flags有沒有設置標志位MS_NOEXEC。
檢查一個標志位。
mnt_flags |= MNT_NOEXEC表示:
這里的意思和上面差不多,進行或操作後,mnt_flags的MNT_NOEXEC標志位置位。
設置一個標志位。
flags &= ~MS_NOEXEC表示:
上述語句主要是說的是 &~操作做了什麼,下面我們分析看看。
這里還是假設flags是二進制1111,MS_NOEXEC定義為十進制8,二進制是0100,
MS_NOEXE進行非「~」操作後,就是二進制的1011,再把1011和flags的1111進行&操作,得到最終的結果──1011,那 么,我們對比可以看到,這里就是把flags中的MS_NOEXE標志位去掉,不管MS_NOEXE標志位在flags中是否被置位。
除去一個標志位。
小技巧:
flags = 0011
0011 << 3:
向左偏移3位,等同於乘以2的3次方,乘以8. 11000
flags = 0011
1100 >> 2:
向右偏移2位,等同於除以2的2次方。
那麼下面這個呢?
(x+127)&~127
(x+127)&~127實際上是這個:
#define ROUND_SIZE(Size) ((Size) + ALIGN - 1) & ~(ALIGN - 1)
「ALIGN」位元組對齊。
⑹ c語言中如下定義是什麼意思,求解釋:
這是定義了一個file_system結構的靜態對象
採用的是標記化結構初始化的方法
這種方法可以對每個結構的部分成員進行初始化,而不需要對全部成員一一初始化
這樣擴展性更強,就算結構新增了一些成員,原先的函數也能夠運行
⑺ C語言問題
定義裡面的上下標應該用常量,而不是變數
你的輸入語句在哪?
⑻ c語言問題
#include<stdio.h>
float AverageRainfall(float *rain,char *mounth[])
{
float *p;
float s=0,average;
p=rain;
for(int i=0;i<12;i++)
{
printf("%s",mounth[i]);
printf("mounth rain:");
scanf("%f",p++);
s=rain[i]+s;
}
return average=s/12;
}
void DifferenceRainfall(float rain[12],float average, float *difference)
{
int i;
//float difference[12];
for(i=0;i<12;i++)
difference[i]=rain[i]-average;
//return difference[i];
}
void PrintResult(float average,float difference[])
{
printf("annule rain fall:%f\n",average);
for(int i=0;i<12;i++)
{
printf("difference[");
printf("%d",i);
printf("]:%f\n",difference[i]);
}
}
void main()
{
char *mounth[]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
float rain[12],average,difference[12];
average = AverageRainfall(rain,mounth);//////
DifferenceRainfall(rain,average,difference);
PrintResult(average,difference);
}