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

c語言60行程序詳解

發布時間: 2022-11-21 04:09:10

A. 急求,一個簡單的c語言程序,要求至少60行,要有些知識點,最好是有創意的。

顯示年日歷的程序
1、 main1.cpp文件清單:
#include <iostream.h>
#include "head1.h"
#include <iomanip.h>//setw()函數的頭文件
extern int year;//全局變數
void main()
{
int i;
cout<<"請輸入您要查詢的年份:";
cin>>year;
int n=weekday(year);//調用weekday函數
for(i=1;i<=12;i++)//總共的月份 12
{
int lemp=1;
cout<<endl<<year<<"年"<<setw(27)<<i<<"月"<<endl;
cout<<"-----------------------------------"<<endl;
char weekd[7][20]={"Mon","Tue","Wed","Thu","Fri","Sta","Sun"};//記錄星期一到星期日
for(int j=0;j<7;j++)
cout<<setw(5)<<weekd[j];//setw(5)表示緊跟其後的數據項的輸出佔5個字元寬
cout<<endl<<"-----------------------------------"<<endl;
for(int k=1;k<n;k++,lemp++)//輸入每月第一天的起始位置,用空格補充
cout<<setw(5)<<" ";
int m=monthday(i);//調用monthday函數
for(int d=1;d<=m;d++,lemp++) //輸出每月的天數
{
cout<<setw(5)<<d;
if(lemp==7) //控制一行輸出到星期天,如果到星期天則重新計數
{
cout<<endl;
lemp=0;
}
}
n=lemp%7; //當輸出完一個月後,記錄這個月的最後一天在哪,尋找下個月的
if(n==0) //第一天的起始位置
n=7;
cout<<endl<<"-----------------------------------"<<endl<<endl<<endl;
}
}
2、isl.cpp文件清單:
#include <iostream.h>
int isleapyear(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;//閏年返回值為1
else
return 0;
}
3、weekday.cpp文件清單:
#include <iostream.h>
int weekday(int year)
{
int n=year-2007;//已知2007年的元旦剛好是星期一
n=n+(n-1)/4+1;// 判斷,以每年52個整星期計算該年比2007年多出來的天數
n=n%7;
if(n==0)
return 7; //返回輸入的年份的元旦是星期幾
else
return n;
}
4、monthday.cpp文件清單:
#include <iostream.h>
#include "head1.h"//需要調用head1中的函數
int year;
int monthday(int i)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
return 31;
else if(i==2)
{
if(isleapyear(year)==1)//調用isleapyear函數
return 29;
else return 28;
}
else return 30;

}5、head1.h文件清單:
int isleapyear(int year);//函數原型聲明
int weekday(int year);//函數原型聲明
int monthday(int i);//函數原型聲明

B. C語言70行程序,在線求。要簡單點的。最好附上解釋說明該函數什麼作用

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
#defineLIM_LEN30
voidbad_exit(void);
/*-----十六進制字元串轉化為十進制-------chapter2_2.3---------------*/
/*-------首先定義一個返回值為int型的冪函數pow1-------*/
intpow1(intm,intn)
{
inti;
intx=1;
for(i=0;i<n;i++)
{
x*=m;
}
returnx;
}
/*-------首先定義一個返回值將十六進制轉化為int型的函數htoi-------*/
inthtoi(chars[])
{
intn,m,i;
intcount=0;
intmzs=0;//控制冪函數的指數
charc;
intch[LIM_LEN];
enummark{NO,YES};//定義標記符號
enummarkflag;

i=0;
n=strlen(s);//字元串的長度,屬於string.h頭文件庫中
//printf("n=%d ",n);
if(s[i]=='0')//除去字元串中的0X或者0x
{
i++;
if(s[i]=='x'||s[i]=='X')
{
i++;
}
}
//printf("i=%d ",i);
//printf("%d ",i);
flag=YES;
//printf("%d ",YES);
for(i,m=0;i<n&&flag==YES;i++)//將字元串轉化為相應的十六進制數字並放入一個int數組中
{
c=s[i];
if(isdigit(c))
{
ch[m]=s[i]-'0';
}
elseif(c>='a'&&c<='f')
{
ch[m]=s[i]-'a'+10;
}
elseif(c>='A'&&c<='F')
{
ch[m]=s[i]-'A'+10;
}
else
{
flag=NO;
atexit(bad_exit);//參數為函數指針,雖然在內部定義但是還需要在文件中函數聲明,要不就是錯誤
exit(EXIT_FAILURE);//參數EXIT_FAILURE和EXIT_SUCCESS
//puts("theinputisn't0-9ora-f!");//列印但是會計算一個溢出錯誤值,上述方法可避免
}
m++;
}
//printf("i=%d ",i);
//printf("m=%d ",m);
m=m-1;//m多計數一次,需要退回一次--------------->每次一定考慮是否多計數!!!
for(m;m>=0;m--)//累加來求出int型的值
{
count+=ch[m]*pow1(16,mzs);
mzs++;
}
returncount;
}
/*-------錯誤退出注冊函數給atexit()使用-------*/
voidbad_exit(void)
{
puts("theinputisn't0-9ora-f!");
}
/*-------首先定義一個返回值將十六進制轉化為int型的函數htoi的驅動函數-------*/
voidhtoi_test()
{
intcount;
charn_nums[]="0X12a";//298
count=htoi(n_nums);
printf("%d ",count);
}
/*-----十六進制字元串轉化為十進制-------chapter2_2.3------over---------*/

C. c語言程序詳解

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

D. 大家幫忙看看c語言程序,最好寫上每行注釋

#include<stdio.h>// 系統函數
#include<time.h>//時間函數
#define MAX 32 //定義函數MAX=32
long queen[MAX]={0},queenl = 1; // 長數組queen MAX內元素為全零,queenl 這個函數為1
int count =0,label = 0;//整形 函數 定義數值
FILE *txt; 文件格式
void Answers(long row, long ml, long mr)
無返回值函數(long是一種數字的格式,有long short double float)
{
if(row != queenl)//條件
{
long pos = queenl & ~(row|ml|mr);同時滿足兩個條件下 pos等於這個結果
while(pos)//循環
{
long p = pos & -pos;// p等於同時正負pos,也就是說,怎麼說好呢,你就理解為它是一個無法滿足的條件,使之變成0,因為只有0是+-一體的
pos-=p; // pos=pos -p
Answers(row|p, (ml|p)>>1, (mr|p)<<1);
}
}
else
count++; count= count +1
}

void Answersp(int n,long row, long ml, long mr)//同理
{
if(row != queenl)
{
long pos = queenl & ~(row|ml|mr);
while(pos)
{
long p = pos & -pos;
pos-=p;
int i = 0;
while(p>>i)i++; //當滿足p>>0時 i=i+1,但是注意這句話有點問題,你少了一對大括弧,循環語句沒有循環的范圍,這樣的話循環的只有queen【n】=i這句話
queen[n] = i;
Answersp(n+1, row|p, (ml|p)>>1, (mr|p)<<1);
queen[n] = 0;
}
}
else
{
count++;
for(int j=0; j<label; j++)
fprintf(txt,"%d.",queen[j]);//出指令printf(「 「)是格式
fprintf(txt," ");
if(count%3 == 0)fprintf(txt,"\n");
}
}

int main()main函數,程序主體
{
double f,f1; 定義雙精度浮點函數
char print= 'n' ,flag; 字元函數
printf("請輸入1~32的之間的整數:"); 輸出
while(label == 0 || label <= 1 || label >= 32) 同時滿足三個條件執行循環,這個循環,其實就是流文件讀取確保裡面有東西
{
scanf("%d",&label); 讀入
while((flag = getchar()) != 10);
這句循環條件2 steps| 1) flag = grther() 2) flag所獲得的值不能等於10
if(label <= 0 || label <= 1 || label >= 32)
printf("非法輸入!\n請輸入1~31的之間的整數:\n");
}
printf("將%d皇後的解輸出到answer.txt?(Y確定,任意鍵繼續)\n",label);
scanf("%c",&flag);
print = flag;
while(flag != 10)flag = getchar();
printf("程序計算中,所需時間依問題規模而定,請耐心等待....\n");

for(int i=1; i<label; i++) 循環
queenl=1+(queenl<<1);
if(print == 'y' || print == 'Y')
{
if((txt=fopen("answer.txt","w"))==NULL) fopen是流文件讀取
printf("answer.txt文件打開出錯!\n");
else
{
f=time(NULL); null是系統函數,似乎是空值,這個記不清了,很多年沒編輯C了,忘了
Answersp(0, 0, 0, 0);
f1=time(NULL);
f1 = f1-f;
fprintf(txt,"\n==%d問題的解總數有%d種==\n",label,count);
fprintf(txt,"用時%d分%d秒\n",(int)(f1/60),(int)((int)f1%60));
fclose(txt);流文件讀取關閉
}
}
else
{
f=time(NULL);
Answers(0, 0, 0);
f1=time(NULL);
f1 = f1-f;
printf("\n==%d問題的解總數有%d種==\n",label,count);
printf("用時%d分%d秒\n",(int)(f1/60),(int)((int)f1%60));
}
printf("Program end.\nPress Enter key to exit!");
while((flag = getchar()) != 10);
}
大概的進行了標注,相同格式的語句就沒有重復標記,希望你能理解

E. C語言程序設計,求各行程序的含義和意思,答辯用的,蟹蟹大佬

C語言實現簡單的翻譯功能

2018年04月25日 16:48:30火炎焱燚OOK閱讀數 3813

題目描述:編寫一個程序,依次輸入英文與漢語拼音,輸入兩個「 * 」表示輸入結束,再輸入一段英語句子,列印出其對應漢語拼音。

要求:不得使用<string.h>頭文件

題目中要求不得使用<string.h>提醒我們使用其中的函數來編寫代碼,不過函數的實現需要自己來思考,根據自己的需要可以調整原函數的功能。思路大致是:輸入完畢後拿原結構體記錄的英文內容與 a 中的單詞逐個相比,若相同,則輸出結構體中對應的漢語拼音。

#include <stdio.h>#include <stdlib.h>#define M 100struct tran //建立結構體,將英文與對應的漢語拼音存儲在一起{char English[M];char Chinese[M];}n[M];int my_strlen(char a[]); //聲明自定義測量數組長度的函數int my_strcmp(char* str1,char* str2); //聲明自定義判斷兩個字元串是否相同的函數int main(){int i=1,j,k;char a[M],*p=a;printf("請首先輸入英文,然後輸入漢語拼音: ");while(n[i-1].English[0]!='*'||n[i-1].Chinese[0]!='*') //當輸入兩個「 * 」時輸入終止{printf("請輸入第%d組 ",i);scanf("%s%s",n[i].English,n[i].Chinese);i++;}printf("請輸入一個句子 ");getchar(); //接收上一個回車,避免下一個scanf()無法輸入scanf("%[^ ]",a);for(i=0;a[i]!='';i++){if(my_strcmp(p,n[i].English)==1){p=p+my_strlen(n[i].English)+1; //使p指針後移,指向第二個單詞printf("%s ",n[i].Chinese);i=-1; //使下次循環 i = 0}}printf(" ");system("pause");return 0;}int my_strcmp(char* str1,char* str2){int flag=0;while(*str1==*str2){str1++;if(*str1==''||' '){flag=1;return 1;}elsestr2++;}if(flag==0)return 0;}int my_strlen(char a[]){int i,k=0;for(i=0;a[i]!='';i++){k++;}return k;}

下面是程序示例:


F. 求一個c語言程序設計,大約60行左右就可以

給你一個學生成績管理的系統,有成績的錄入,分數的排序,刪除,修改等功能。

struct__stu{

intstuNum;

charname[20];

intScoreMath;

};

__stustu[50];

intnumberSTU=0;

voidprintinfo(void)

{

printf("1成績錄入 ");

printf("2成績顯示 ");

printf("3成績修改 ");

printf("4成績統計 ");

printf("5成績排序 ");

printf("6顯示菜單 ");

printf("7退出 ");

}

voidinputinfo(intn)

{

printf("第%d個學生的學號:",n);

scanf("%d",&stu[n-1].stuNum);

getchar();

printf("第%d個學生的姓名:",n);

gets(stu[n-1].name);

printf("第%d個學生數學成績:",n);

scanf("%d",&stu[n-1].ScoreMath);

getchar();

}

voiddisplayinfo(intn)

{

inti=0;

printf("學號 姓名 分數 ");

for(i=0;i<n;i++)

{

printf("%d %s %d ",stu[i].stuNum,stu[i].name,stu[i].ScoreMath);

}

}

voidcountNum(intn)

{

inti=0;

inttempNum=0;

for(i=0;i<n;i++)

{

if(stu[i].ScoreMath<60)

{

tempNum++;

}

}

printf("及格的人數為:%d 不及格的人數為:%d ",n-tempNum,tempNum);

}

voidmodify(intstuNumber)

{

inti=0;

for(i=0;i<numberSTU;i++)

{

if(stu[i].stuNum==stuNumber)

{

printf("你想修改的分數為:");

scanf("%d",&stu[i].ScoreMath);

getchar();

printf("修改成功 ");

return;

}

}

printf("學號錯誤,修改失敗 ");

}

voidsoucemath_from_higt_to_low(intn)

{

intindexi;

intindexj;

__stu_temp;

for(indexi=0;indexi<n;indexi++)

{

for(indexj=indexi+1;indexj<n;indexj++)

{

if(stu[indexi].ScoreMath<stu[indexj].ScoreMath)

{

_temp=stu[indexj];

stu[indexj]=stu[indexi];

stu[indexi]=_temp;

}

}

}

printf("數學分數從高到低排列: ");

displayinfo(numberSTU);

}

intmain(intargc,char*argv[])

{

charcasechar=0;

intstudentNUm=1;

printinfo();

while(1)

{

printf("輸入指令:");

scanf("%c",&casechar);

getchar();

switch(casechar)

{

case'1':

numberSTU++;

inputinfo(numberSTU);

//printf("輸入信息 ");

break;

case'2':

displayinfo(numberSTU);

//printf("顯示成績 ");

break;

case'3':

printf("輸入你想修改的學生學號:");

scanf("%d",&studentNUm);

getchar();

modify(studentNUm);

break;

case'4':

countNum(numberSTU);

break;

case'5':

soucemath_from_higt_to_low(numberSTU);

break;

case'6':

printinfo();

break;

case'7':

return0;

}

}

return0;

}

G. 我要寫一個C語言程序,關於文本轉換的,轉換出來的文本每行不超過60個字元,詳細如下……

把輸入塞到一個string里...輸出的那個string定為60,把輸入的string往裡面傳,沒滿60就往裡面送,到了60可是下一個不是空格就吐出來退到上一個空格...這樣你輸出的string就是不超過60個字元的盡可能多的單詞...這時候你可以找個變數定位下輸入string的位置或者乾脆把前面的去掉...輸入換行...然後重復進行...再輸出...

H. 尋找一個C語言程序 60行到100行左右 注釋詳細

#include <stdio.h> /*頭函數*/
int main(void) /*主函數*/
{
char c; /*指定c成為字元變數*/
printf("請輸入0到9的任意一個數字\n"); /*輸出請輸入0到9的任意一個數字*/
c=getchar(); /*輸入一個字元*/
while(c>=48&&c<=57) /*c的取值范圍*/
{
getchar();
switch(c) /*根據c的值轉換*/
{
case '0': printf("你喜歡奮斗嗎?\n"); /*假如c=0,輸出你喜歡奮斗嗎?*/
break; /*中斷跳出,執行c=getchar()*/
case '1': printf("你喜歡當模特嗎?\n"); /*假如c=1,輸出你喜歡當模特嗎?*/
break; /*中斷跳出,執行c=getchar()*/
case '2': printf("你喜歡和諧嗎?\n"); /*假如c=2,輸出你喜歡和諧嗎?*/
break; /*中斷跳出,執行c=getchar()*/
case '3': printf("你喜歡道家嗎?\n"); /*假如c=3,輸出你喜歡道家嗎?*/
break; /*中斷跳出,執行c=getchar()*/
case '4': printf("你是廣東人嗎?\n"); /*假如c=4,輸出你是廣東人嗎?*/
break; /*中斷跳出,執行c=getchar()*/
case '5': printf("你喜歡武術嗎?\n"); /*假如c=5,輸出你喜歡武術嗎?*/
break; /*中斷跳出,執行c=getchar()*/
case '6': printf("祝你一帆風順!\n"); /*假如c=6,輸出祝你一帆風順!*/
break; /*中斷跳出,執行c=getchar()*/
case '7': printf("觀察等待好機會!\n"); /*假如c=7,輸出觀察等待好機會!*/
break; /*中斷跳出,執行c=getchar()*/
case '8': printf("你喜歡交際嗎?\n"); /*假如c=8,輸出你喜歡交際嗎?*/
break; /*中斷跳出,執行c=getchar()*/
case '9': printf("追求完美吧!\n"); /*假如c=9,輸出追求完美吧!*/
break; /*中斷跳出,執行c=getchar()*/
}
c=getchar(); /*再輸入一個字元*/
}
return 0; /*返回值*/
}

I. 誰提供一原創C語言完整程序,50行以上,有程序注釋,急用

#include<reg52.h>
#define uchar unsigned char //宏定義
#define uint unsigned int
sbit rs=P2^6; //液晶引腳位定義
sbit rw=P2^5;
sbit en=P2^7;
sbit k5=P2^3; //獨立鍵盤位定義
sbit k6=P2^2;
sbit k7=P2^4;
sbit sda=P2^1; //EEPROM位定義
sbit scl=P2^0;
sbit JD=P1^4;
uchar i,tt,a;
char shi,fen,miao;
uchar code D[]=" 2011-3-24";
uchar code D1[]=" : : ";
void delay1() //延時函數,延時時間約4us
{;;}
void start() //EEPROM中開始信號
{
sda=1;
delay1();
scl=1;
delay1();
sda=0;
delay1();

}
void stop() //EEPROM中停止信號
{
sda=0;
delay1();
scl=1;
delay1();
sda=1;
delay1();}
void response() //EEPROM中應答信號
{
uint i;
scl=0;
delay1();
scl=1;
delay1();
while((sda==1)&&(i<250))i++)
scl=0;
delay1();
}
void write_byte(uchar shu)//在EEPROM中寫8位2進制數
{
uint i;
uchar temp;
temp=shu;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay1();
sda=CY;
delay1();
scl=1;
delay1();
}
scl=0;
delay1();
sda=1;
delay1();
}
uchar read_byte()//從EEPROM中讀8位2進制數
{
uint i;
uchar a;
scl=0;
delay1();
sda=1;
delay1();
for(i=0;i<8;i++)
{
scl=1;
delay1();
a=(a<<1)|sda;
delay1();
scl=0;
delay1();
}
return a;
}
void write(uchar address,uchar date)//在EEPROM指定地址寫入數據
{
start();
write_byte(0xa0);
response();
write_byte(address);
response();
write_byte(date);
response();
stop();}
uchar read(uchar address) //從EEPROM中指定地址讀數據
{
uchar date;
start();
write_byte(0xa0);
response();
write_byte(address);
response();
start();
write_byte(0xa1);
response();
date=read_byte();
stop();
return date;
}
void delay(uchar z) //延時函數
{
uchar x,y;
for(x=z;x>0;x--)
for(y=120;y>0;y--);
}
write_com(uchar com) //給液晶寫指令
{
en=0;
rs=0;
rw=0;
P0=com;
delay(5);
en=1;
delay(5);
en=0;
}
write_date(uchar date) //給液晶寫數據
{
en=0;
rs=1;
rw=0;
P0=date;
delay(5);
en=1;
delay(5);
en=0;
}
void write_sfm(uchar add,char date)//液晶在指定位置開始寫指定的數
{ char x,y;
x=date/10;
y=date%10;
write_com(0x80+0x40+add);
write_date(0x30+x);
write_date(0x30+y);
}
void init()
{ TMOD=0x01; //定時器0的初始化
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;ET0=1;
TR0=1;
write_com(0x38); //液晶的初始化
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
for(i=0;i<12;i++) //顯示液晶的第一行
{write_date(D[i]);<br> delay(20);<br> }
write_com(0x80+0x40);//顯示液晶的第二行
for(i=0;i<12;i++)
{write_date(D1[i]);<br> delay(20);<br> }
shi=read(4);//從eeprom中讀值分別賦給時分秒
fen=read(5);
miao=read(2);
write_sfm(4,shi);//液晶第二行顯示時分秒
write_sfm(7,fen);
write_sfm(10,miao);}
void main()
{
init();
while(1)
{
if(k5==0)
{
delay(5);
if(k5==0)
{
while(!k5);//鬆手檢測
delay(5);
while(!k5);
a++;
TR0=0;
if(a==4)
{
a=0;
TR0=1;
tt=0;
}

}
}
switch(a)
{
case 1: //秒的調整
{ write_com(0x80+0x40+11);//調游標到秒的位置
write_com(0x0f); //游標閃爍
if(k6==0)
{
delay(5);
if(k6==0)
{ while(!k6);
delay(5);
while(!k6);
miao++;
if(miao==60)
miao=0;
write(2,miao);
write_sfm(10,miao);
write_com(0x80+0x40+11);
}
}
if(k7==0)
{
delay(5);
if(k7==0)
{ while(!k7);
delay(5);
while(!k7);
miao--;
if(miao<0)
miao=59;
write(2,miao);
write_sfm(10,miao);
write_com(0x80+0x40+11);
}
}
} break;
case 2: //分鍾的調整
{ write_com(0x80+0x40+8);//調游標到分的位置
if(k6==0)
{
delay(5);
if(k6==0)
{ while(!k6);
delay(5);
while(!k6);
fen++;
if(fen==60)
fen=0;
write(5,fen);
write_sfm(7,fen);
write_com(0x80+0x40+8);
}
}
if(k7==0)
{
delay(5);
if(k7==0)
{ while(!k7);
delay(5);
while(!k7);
fen--;
if(fen<0)
fen=59;
write(5,fen);
write_sfm(7,fen);
write_com(0x80+0x40+8);
}
}
} break;
case 3: //小時的調整
{ write_com(0x80+0x40+5);//調游標到小時的位置
if(k6==0)
{
delay(5);
if(k6==0)
{ while(!k6);
delay(5);
while(!k6);
shi++;
if(shi==24)
shi=0;
write(4,shi);
write_sfm(4,shi);
write_com(0x80+0x40+5);
}
}
if(k7==0)
{
delay(5);
if(k7==0)
{ while(!k7);
delay(5);
while(!k7);
shi--;
if(shi<0)
shi=23;
write(4,shi);
write_sfm(4,shi);
write_com(0x80+0x40+5);
}
}
} break;
case 0:
{
write_com(0x0c); //開液晶顯示,不顯游標,游標不閃
if(tt==20) //每過一秒時鍾走一秒
{
tt=0;
miao++;
if(miao==60)
{
JD=0;
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
shi=0;
write_sfm(4,shi);
write(4,shi);
}
write_sfm(7,fen);
write(5,fen);
}
write_sfm(10,miao);
write(2,miao);
if(miao==30)
JD=1;
}
}
}
}

}
void timer0() interrupt 1 //定時器0函數
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;

}
C++的~~LCD時鍾程序

J. 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
}
}