c語言程序解析

1.

#include "stdio.h"
main()
{
printf(" %d,%d ",20/7,-20/7);
printf("%f,%f ",20.0/7,-20.0/7);
}

運行來截圖

分析:

i++ 表示先使用i,然後i的值加1

++i 表示先把i的值加1,再使用i

Ⅱ C語言程序講解,一條一條講

int condition_check(NODE *head){ //檢查是否符合條件A
NODE *p; //定義臨時結點指針變數p
int tmp; //定義臨時整型變數tmp
for(p=head;p;p=p->next){ //將臨時結點指針變數指向頭結點,然後遍歷一遍鏈表
if(count(head,p->num)>1)return 0;//如果count(head,p->num)返回值大於1,返回0
for(tmp=p->num;tmp>0;tmp>>=1){ //tmp等於指向的結點的num的值,右移一位(右移1位相當於除以2),如果大於0,循環
if(tmp&1 && tmp>1)return 0; //如果tmp&1=1且tmp>1,返回0;
}
}
return 1;//其他情況返回1
}

Ⅲ C語言代碼解析

你應該還沒學指抄針吧,學了之後這個代碼就很好懂了。我先簡單說說,你可以把a[100]這個數組看成一個個抽屜,每個抽屜依次有自己的編號。子函數中a+n-1就是a[n-1]的編號值,a即為a[0]的編號,通過編號值找到a[n-1]這個排在最後的抽屜,把它抽出來,然後它之前的抽屜依次後移一格,它再放到第一個,隨著抽屜排序的變化,抽屜里存的數的順序也發生變化。通過m計數,將上述過程重復m次完成。

Ⅳ c語言程序解讀

先從主函數main開始,i初始值為0,調用func1,將i值0作為參數傳入
在func1中,首先列印st[i],即st[0],即字元串的第一個字元h,向下執行到if條件句,當前i小於3,則執行i+=2, 相當於i=i+2 => i=0+2 => i=2,接著調用func2函數,此時i為2,作為參數傳入
在func2中,先列印st[2],即字元串中的第三個字元l,接下來判斷if條件,當前i為2小於3滿足條件,執行i+=2得到i為4,接著調用func1,將4作為參數傳入
在func1中,首先列印st[i],即st[4],即字元串的第5個字元o, 判斷if條件,發現此時i大於3不滿足條件,不再執行下面的語句。
回到主函數main中,列印換行符後程序結束
最後結果為hlo

Ⅳ C語言程序解析

#include<stdio.h>
const int c=2009;
int main()
{
int n,p,s,i,j,t;
scanf("%d%d",&n,&p);//輸入2個數字11和2,存入變數n和p中.
s=0;t=1;//t的初始值為1
for(i=1;i<=n;i++)//循環1,循環運算 t=t*p%c運算式 n遍.
{
t=t*p%c; //t乘以p的積,對2009求余.並將得到的值賦給t.//注:求余的意思就是只取余數位.比如10%3,則求余就得到的是1.
for(j=1;j<=i;j++)//循環2,循環運算( s=(s+t)%c)
s=(s+t)%c;
}
printf("%d\n",s);
return 0;
}
//當i=1時,t=1*2%2009,得t=2.然後進入循環2循環1次,得到s=(0+2)%2009,得s=2;
//當i=2時,t=2*2%2009,得t=4,然後進入循環2循環2次:第一次得到s=(2+4)%2009,即s=6;第二次s=(6+4)%2009,得s=10;
//當i=3時,t=4*2%2009,得t=8,然後進入循環2循環3次...
//...以此類推執行n次循環1,即11次.循環2執行了(1+2+3+..+11)次,最後得到s.

Ⅵ 講解一個C語言程序

#include"stdio.h"
#define N 8定義N等於八
void main()
{char c[N];定義長度為八的字元串
int i=0;
for(;i<N;c[i]=getchar(),i++);將從鍵盤輸入的字元逐一存入
for(i=0;i<N;i++) putchar(c[i]);將字元逐一輸出
printf("\n");}

Ⅶ 求教!!!這個c語言程序的詳細講解!!!每一句是什麼意思啊

#include<stdio.h>
intmain()
{
charscore;
scanf("%c",&score);//從鍵盤輸入一個字元,按回車確認,存儲到score變數中
printf("yourscore:");//在屏幕上顯示yourscore:信息
switch(score)//判斷score的值是什麼
{
case'A':printf("85~100 ");break;//當score是A字母時,顯示85~100,結束。下面同理
case'B':printf("70~84 ");break;
case'C':printf("60~69 ");break;
case'D':printf("<60 ");break;
default:printf("enterdataerror! ");//如果不是A-D,則顯示enterdataerror!結束。
}
return0;//結束本函數
}

Ⅷ C語言程序求講解

這個程序應該是計算一個班級人員排名的小程序.好久沒有看過C代碼了,只能勉強下了!
#include"stdio.h" //引入stdio.h頭文件
#include"string.h" //引入字元類頭文件
struct stu //定義結構體stu
{ int num; //結構體變數 num
char name[20]; //結構體變數 字元數組name
int score[3];} //結構體變數 整形數組
a[3];
main() //主方法 main
{int i,j,z=0,s=0;int ave; //定義整形變數
for(i=0;i<3;i++) //循環
{printf("input %d num:",i+1); //循環列印 input 0 num:,input 1 num:,input 2 num:
scanf("%d",&a[i].num); //取得輸入的值
getchar(); //從stdio流中讀字元,相當於getc(stdin),它從標准輸入里讀取下一個字元,該函數聲明在stdio.h頭文件中,使用的時候要包含stdio.h頭文件
printf("input name:"); //列印 input name:
gets(a[i].name); //從a[i].name中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為null值,並由此來結束字元串。
printf("input score:" ); //列印 input score:
for(j=0;j<3;j++) //循環
scanf("%d",&a[i].score[j]);} //取得輸入的值
for(i=0;i<3;i++) //循環
{for(j=0;j<3;j++) //循環
s+=a[i].score[j];
ave=s/3; //求平均數
printf("ave=%d ",ave); //列印平均數
s=0;
if(ave>=85&&ave<=90) //如果平均數>=85且平均數小於90
printf("%d,%s\n",a[i].num,a[i].name);} //列印排名 和 名字
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
if(a[i].score[j]<60) //如果分數小於60
{ z++;
if(z>=2) //如果有兩個分數都小於60
{printf("%d ",a[i].num); //列印該排名
if(a[i].score[j]<60) //如果當前的分數小於60
printf("%d ",a[i].score[j]);}} //則列印出當前的分數
z=0; //z重新賦值為0
}
}

Ⅸ c語言程序詳解

while(a<15)a++; 出循環時a為15
while(b++<15); b++為後加,當b為15是退出循環,之後因為b++,所以b還會再自加1變為16
所以結果即為15,16

Ⅹ C語言程序解讀

問題1:getchar()就是從鍵盤獲得一個字元,!=是不等於的意思。當獲得的字母不是回車鍵時,n+1!你從鍵盤輸入字元串時總是以回車結束輸入,所以一旦你按回車n就不再加一!所以實現函數功能!
問題2:a++*2的意思是a乘以2然後a再加1.此程序的意思就是執行「a乘以2然後a再加1」n次!而此n就是你從鍵盤輸入的數字!