1.
答案為
1
因為s=6
所以s%2+(s+1)%2
=
6%2+7%2
=
0+1
=1,%是求余運算
2.
變量c(請註意妳問題裏面的大小寫,因為C語言對下小寫敏感)包含的個數為1.
妳所指的個數應該是指字符的個數,'\010'是八進制的表示方式。
3.
有很多答案,妳要的答案應該是遞歸函數
原型如下:
int
jiechen(int
a);
實現壹:遞歸函數
int
jiechen(int
a)
{
if(a
==
1)
return
1;
else
return
jiechen(a-1);
//在函數定義裏面調用該函數
}
實現二:循環(不知道和叠代是否壹樣~~~)
int
jiechen(int
a)
{
int
res;
res
=
1;
do{
res
*=
a;
}while(--a);
return
res;
}
調用函數
jiechen(100);
c語言問題在線等答案第壹題首先妳要明白i++(執行完後加)和++i(執行前加)還有就是do,while是先做後判斷;
第1次3+1=4//運行到下壹句時i=2
第2次4+2=6//運行到下壹句時i=3
第3次6+3=9//運行到下壹句時i=4
此時滿足了else條件,自此執行到++i時,i=5
第4次9+5=14//運行到下壹句時i=6
此時滿足了else條件,自此執行到++i時,i=7
第5次14+7=21//運行到下壹句時i=8
因為2115所以循環終止
第二題,while是先判斷後做;
第1次2%3=0//執行下壹句前i=2
第2次3%3=0//執行下壹句前i=3
第3次4%3=1//執行下壹句前i=4
第4次5%3=2//執行下壹句前i=5
此時滿足條件,輸出i的值5
第5次6%3=0//執行下壹句前i=6
第6次7%3=1//執行下壹句前i=7
第7次8%3=2//執行下壹句前i=8
此時滿足條件,輸出i的值8
第8次9%3=0//執行下壹句前i=9
第9次10%3=1//執行下壹句前i=10
第10次11%3=2//執行下壹句前i=11
此時滿足條件,輸出i的值11
第11次12%3=0//執行下壹句前i=12
第12次13%3=1//執行下壹句前i=13
第13次14%3=2//執行下壹句前i=14
此時滿足條件,輸出i的值14
第14次15%3=0//執行下壹句前i=15
循環結束
第三題do,while是先做後判斷
樓主妳是這麽寫的a=a+s*i;s=-si;i++;
s=-si這個應該編譯不會通過的,有了前面兩題的經驗,樓主可以自己算壹算,要有耐心哦,這些題主要是考驗妳對do,while和while結構的區別,還有就是++i和i++的區別
C語言在線答疑
設計思路:
1/先找出每壹行的最大數,記錄位置到數組中。
2/找出每壹列最小的數,得出位置和之前數組比對,如果相通,說明是鞍點。
在火車上,只能用手機敲代碼。代碼如下:
#include
typedefstructPOS{//位置坐標結構體
intM;
intN;
};
voidShow(int**rect,POSp);//顯示對應的點
POSFindRowMax(int**rect,intm,intn);
POSFindColMini(int**rect,intm,intn);
intmain()
{
inti=0,j=0,flag=0;
intrectArray[3][4]={{1,2,6,4},{5,6,7,8},{9,10,11,12}};
POSrowMaxPosArray[3]={};
POScolMiniPosArray[4]={};
for(i=0;i3;i++)
{
rowMaxPosArray[i]=FindRowMax(rectArray,i,4);
}
for(i=0;i4;i++)
{
colMiniPosArray[i]=FindColMini(rectArray,3,i);
}
for(i=0;i3;i++)
{
for(j=0;j4;i++)
{
if(rowMaxPosArray[i]==colMiniPosArray[j])
{
Show(rectArray,rowMaxPosArray[i]);
flag=1;
}
}
}
if(!flag)
{
printf("不存在鞍點\n");
}
return0;
}
c語言問題?詳細解答壹下,謝謝輸出結
果:cdeab
分析:只要妳理解了move函數的作用妳就能明白整個過程:
第壹次循環調用move(char
*str,int
n)這壹函數給它的參數是
s與
s的長度(就是妳輸入的abcde的長度5),第壹步執行temp=str[5-1]=str[4],而str[4]的值為'e',所以temp的值為'e',接著執行for(i=n-1;
i0;i--)
str[i]=str[i-1];
這個循環是把從str[1]開始的所有數組的元素都後移壹位,
即str[2]成了str[1],str[3]成了str[2]等等,循環執行完後執行str[0]=temp;,也就是把e賦值給了
str[0]。所以abcde被move函數處理壹次後就成了
eabcd,如果再被處理壹次後就被變成deabc等等
也就是說move函數每調用壹次就把相應的字符串循環右移壹位
壹個C語言問題,求大佬解答?以下是實現兩個fraction類型變量的加減的C代碼:
#includestdio.h
#includestdlib.h
structfraction{
longlongintnumerator;
unsignedlonglongintdenominator;
};
//將分數f1和f2相加,返回結果
structfractionFra_Add(structfractionf1,structfractionf2){
structfractionresult;
//檢查輸入的合法性
if(f1.denominator==0||f2.denominator==0){
result.numerator=0;
result.denominator=0;
returnresult;
}
//計算分數的和
result.numerator=f1.numerator*f2.denominator+f2.numerator*f1.denominator;
result.denominator=f1.denominator*f2.denominator;
returnresult;
}
//將分數f1和f2相減,返回結果
structfractionFra_Sub(structfractionf1,structfractionf2){
structfractionresult;
//檢查輸入的合法性
if(f1.denominator==0||f2.denominator==0){
result.numerator=0;
result.denominator=0;
returnresult;
}
//計算分數的差
result.numerator=f1.numerator*f2.denominator-f2.numerator*f1.denominator;
result.denominator=f1.denominator*f2.denominator;
returnresult;
}
intmain(void){
inti;
structfractionsum={0,1};//初始化為0
structfractionterm;
//計算數列的和
for(i=1;i=10;i++){
//計算(-1)^(i-1)/(2*i-1)
term.numerator=(i%2==0)?-1:1;
term.denominator=2*i-1;
if(i%2==0){
sum=Fra_Sub(sum,term);
}else{
sum=Fra_Add(sum,term);
}
}
//輸出結果的分數值
printf("結果的分數值:%lld/%llu\n",sum.numerator,sum.denominator);
//輸出
c語言程序解答(在線等)?根據題意:
1、項目序號應為唯壹值,用自增變量填充。
2、時間使用structtm結構體(考慮如需時間運算,可使用相關函數)。
3、自定義結構類型SIINFO,分別實現插入鏈表和打印鏈表兩個功能。
4、由於這個演示程序執行完就結束程序了。所以鏈表我沒有寫free釋放內存,如妳後期擴充代碼,自己寫釋放(除程序結束,malloc申請內存不會自動釋放)。
下面是演示代碼:
#includestdio.h
#includemalloc.h
#includetime.h
#defineMS4//最大類型個數
#defineMN20//名稱最大字符長度
charstypes[MS][10]={"速度型","力量型","耐力型","對抗型"};//項目類別,自行擴展,對應修改MS常量
typedefstructSportsItemInfo//定義壹個體育項目結構類型
{
intid;//項目序號,從數據結構考慮,該項不能重復,應設為自增從0開始(實際開發,這個值由數據庫分配)。 charname[MN+1];//項目名稱 intstype;//項目類(對應stypes行下標) intn;//參賽人數 structtmsDate;//競賽時間 structSportsItemInfo*next;}SIINFO;
SIINFO*insert2List(SIINFO*p_sHead);//插入新數據,首次插入參數傳NULL。參數:鏈表頭節點地址(不是首節點)。成功返回頭節點,失敗返回NULL。
voidselectFList(SIINFO*p_sHead);//查詢鏈表
intmain()
{
charc; SIINFO*p_sHead=NULL,*stemp=NULL; printf("新增體育項目:\n"); while(1) {stemp=insert2List(p_sHead);
if(!stemp)
{
printf("ERROR!\n"); return1;}
p_sHead=stemp;
printf("是否繼續輸入(Y/N):");
c=0;
while(c!='Y'c!='N')scanf("%c",c);
if(c=='N')break;
} selectFList(p_sHead); return0;}
voidselectFList(SIINFO*pht)
{
inti=0; if(pht) {printf("\n輸出鏈表信息:\n");
while(pht-next)
{
printf("-----------項目%d---------\n",++i); printf("項目序號:%d\n",pht-next-id); printf("項目名稱:%s\n",pht-next-name); printf("項目類別:%s\n",stypes[pht-next-stype]); printf("參賽人數:%d\n",pht-next-n); printf("參賽時間:%04d-%02d-%02d%02d:%02d:%02d\n",pht-next-sDate.tm_year+1900,pht-next-sDate.tm_mon+1,pht-next-sDate.tm_mday,pht-next-sDate.tm_hour,pht-next-sDate.tm_min,pht-next-sDate.tm_sec); printf("--------------------------\n"); pht=pht-next;}
}}
SIINFO*insert2List(SIINFO*p_sHead)
{
staticintx=0; staticSIINFO*p_sTail=NULL; inti; SIINFO*p_new=NULL; if(!p_sHead){p_sHead=(SIINFO*)malloc(sizeof(SIINFO));
if(!p_sHead)
returnNULL;p_sHead-next=NULL;
p_sTail=NULL;
} p_new=(SIINFO*)malloc(sizeof(SIINFO)); if(!p_new)returnNULL;
p_new-next=NULL; p_new-id=x++; printf("--------------------------\n"); printf("項目名稱:"),scanf("%s",p_new-name); for(i=0,printf("項目類(");iMS-1;printf("%d、%s,",i,stypes[i]),i++); printf("%d、%s):",i,stypes[i]); p_new-stype=-1; while(p_new-stype0||p_new-stypeMS-1)scanf("%d",p_new-stype); printf("參賽人數:"),scanf("%d",p_new-n); printf("參賽時間(輸入格式:年-月-日時:分:秒):"); scanf("%d-%d-%d%d:%d:%d",p_new-sDate.tm_year,p_new-sDate.tm_mon,p_new-sDate.tm_mday,p_new-sDate.tm_hour,p_new-sDate.tm_min,p_new-sDate.tm_sec); p_new-sDate.tm_mon--;//tm結構的月份是從0開始對應1月 p_new-sDate.tm_year=p_new-sDate.tm_year-1900;//tm結構的年份是實際年份-1900 if(!p_sHead-next)p_sHead-next=p_new;
elsep_sTail-next=p_new;
p_sTail=p_new; printf("--------------------------\n"); returnp_sHead;}