#includestdio.h?
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的義馬網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
#includestdlib.h
int?N1,?N2,?kk1,?kk2,?kk3;
struct?couse?*?head1;
struct?student?*?head2;
struct?couse//課程信息結(jié)構(gòu)體
{
int?num1;
char?name1[20];
int?score;
int?nelepeo;//課程已選人數(shù)
int?Melepeo;//課程人數(shù)上限
struct?couse?*?next;
};
struct?student//學生信息結(jié)構(gòu)體
{
int?num2;
char?name2[20];
int?nelenum[50];//已選課程編號
int?nelen;//已選課程數(shù)量
struct?student?*?next;
};
void?Ms()
{
for?(kk1?=?0;?kk11100;?kk1++)
for?(kk2?=?0;?kk21200;?kk2++)
for?(kk3?=?0;?kk31200;?kk3++);
}
void?keyboardc()//錄入課程子函數(shù)(從鍵盤錄入)
{
struct?couse?*p1,?*p2;
N1?=?0;
p1?=?p2?=?(struct?couse*)malloc(sizeof(struct?couse));
printf("課程編號\t課程名稱\t學分\t課程人數(shù)上限\n");
scanf("%d%s%d%d",?p1-num1,?p1-name1,?p1-score,?p1-Melepeo);
p1-nelepeo?=?0;
head1?=?NULL;
while?(p1-num1?!=?0)
{
N1?=?N1?+?1;
if?(N1?==?1)head1?=?p1;
else?p2-next?=?p1;
p2?=?p1;
p1?=?(struct?couse?*)malloc(sizeof(struct?couse));
scanf("%d%s%d%d",?p1-num1,?p1-name1,?p1-score,?p1-Melepeo);
p1-nelepeo?=?0;
}
p2-next?=?NULL;
}
void?filec()//錄入鍵盤子函數(shù)(從文件錄入)
{
FILE?*?fp;
char?filepath[20];
struct?couse?*p1,?*p2;
N1?=?0;
printf("輸入要讀入的文件路徑:");
getchar();
gets(filepath);
if?((fp?=?fopen(filepath,?"r"))?==?NULL)
{
printf("找不到%s文件!\n",?filepath);
exit(0);
}
p1?=?p2?=?(struct?couse*)malloc(sizeof(struct?couse));
fscanf(fp,?"%d%s%d%d%d",?p1-num1,?p1-name1,?p1-score,?p1-nelepeo,?p1-Melepeo);
head1?=?NULL;
while?(!feof(fp))
{
N1?=?N1?+?1;
if?(N1?==?1)head1?=?p1;
else?p2-next?=?p1;
p2?=?p1;
p1?=?(struct?couse?*)malloc(sizeof(struct?couse));
fscanf(fp,?"%d%s%d%d%d",?p1-num1,?p1-name1,?p1-score,?p1-nelepeo,?p1-Melepeo);
}
p2-next?=?NULL;
}
void?inputc()//錄入課程主函數(shù)
{
int?i;
printf("\t\t\t錄入課程信息\n");
printf("\n1.從鍵盤錄入\n");
printf("2.從文件錄入\n");
printf("3.返回主菜單\n");
printf("請選擇(1~3):\n");
scanf("%d",?i);
switch?(i)
{
case(1)?:?keyboardc();?break;
case(2)?:?filec();?break;
case(3)?:?break;
}
}
void?insertc(struct?couse?*incouse)//課程管理子函數(shù)(增加課程)
{
struct?couse?*p0,?*p1,?*p2;
p1?=?head1;
p0?=?incouse;
if?(head1?==?NULL)
{
head1?=?p0;
p0-next?=?NULL;
}
else
{
while?((p0-num1??p1-num1)??(p1-next?!=?NULL))
{
p2?=?p1;
p1?=?p1-next;
}
if?(p0-num1?=?p1-num1)
{
if?(head1?==?p1)?head1?=?p0;
else?p2-next?=?p0;
p0-next?=?p1;
}
else
{
p1-next?=?p0;
p0-next?=?NULL;
}
}
N1?=?N1?+?1;
}
void?delc(int?num1)//課程管理子函數(shù)(刪除課程)
{
struct?couse?*p1,?*p2;
if?(head1?==?NULL)
{
printf("\n沒有課程,無法刪除!\n");
goto?end;
}
p1?=?head1;
while?(num1?!=?p1-num1??p1-next?!=?NULL)
{
p2?=?p1;
p1?=?p1-next;
}
if?(num1?==?p1-num1)
{
if?(p1?==?head1)?head1?=?p1-next;
else?p2-next?=?p1-next;
printf("已刪除該編號課程!\n");
N1?=?N1?-?1;
}
else?printf("無該編號的課程!\n");
end:;
}
void?managementc()//課程管理主函數(shù)
{
struct?couse?*?incouse;
int?i,?num1;
printf("\t\t\t課程管理\n");
printf("1.新增課程\n");
printf("2.刪除課程\n");
printf("3.返回主菜單\n");
printf("請選擇(1~3):\n");
scanf("%d",?i);
switch?(i)
{
case(1)?:
{
incouse?=?(struct?couse?*)malloc(sizeof(struct?couse));
printf("課程編號\t課程名稱\t學分\t課程人數(shù)上限\n");
scanf("%d%s%d%d",?incouse-num1,?incouse-name1,?incouse-score,?incouse-Melepeo);
incouse-nelepeo?=?0;
insertc(incouse);
break;
}
case(2)?:
{
printf("請輸入要刪除課程的編號:\n");
scanf("%d",?num1);
delc(num1);
break;
}
case(3)?:?break;
}
}
void?keyboards()//錄入學生信息子函數(shù)(從鍵盤錄入)
{
int?i;
struct?student?*p1,?*p2;
N2?=?0;
p1?=?p2?=?(struct?student?*)malloc(sizeof(struct?student));
printf("學生學號\t學生姓名\n");
scanf("%d%s",?p1-num2,?p1-name2);
p1-nelen?=?0;
for?(i?=?0;?i20;?i++)?p1-nelenum[i]?=?0;
head2?=?NULL;
while?(p1-num2?!=?0)
{
N2?=?N2?+?1;
if?(N2?==?1)head2?=?p1;
else?p2-next?=?p1;
p2?=?p1;
p1?=?(struct?student?*)malloc(sizeof(struct?student));
scanf("%d%s",?p1-num2,?p1-name2);
p1-nelen?=?0;
for?(i?=?0;?i20;?i++)?p1-nelenum[i]?=?0;
}
p2-next?=?NULL;
}
void?files()//錄入學生信息子函數(shù)(從文件錄入)
{
int?i?=?0;
FILE?*?fp;
char?filepath[20];
struct?student?*p1,?*p2;
N2?=?0;
printf("輸入要讀入的文件路徑:");
getchar();
gets(filepath);
if?((fp?=?fopen(filepath,?"r"))?==?NULL)
{
printf("找不到%s文件!\n",?filepath);
exit(0);
}
p1?=?p2?=?(struct?student*)malloc(sizeof(struct?student));
fread(p1,?sizeof(struct?student),?1,?fp);
head2?=?NULL;
while?(!feof(fp))
{
i?=?0;
N2?=?N2?+?1;
if?(N2?==?1)head2?=?p1;
else?p2-next?=?p1;
p2?=?p1;
p1?=?(struct?student?*)malloc(sizeof(struct?student));
fread(p1,?sizeof(struct?student),?1,?fp);
}
p2-next?=?NULL;
}
void?inputs()//錄入學生信息主函數(shù)
{
int?i;
printf("\t\t\t錄入學生信息\n");
printf("\n1.從鍵盤錄入\n");
printf("2.從文件錄入\n");
printf("3.返回主菜單\n");
printf("請選擇(1~3):\n");
scanf("%d",?i);
switch?(i)
{
case(1)?:?keyboards();?break;
case(2)?:?files();?break;
case(3)?:?break;
}
}
void?inserts(struct?student?*?incouse)//學生信息管理子函數(shù)(填加學生信息)
{
struct?student?*p0,?*p1,?*p2;
p1?=?head2;
p0?=?incouse;
if?(head2?==?NULL)
{
head2?=?p0;
p0-next?=?NULL;
}
else
{
while?((p0-num2??p1-num2)??(p1-next?!=?NULL))
{
p2?=?p1;
p1?=?p1-next;
}
if?(p0-num2?=?p1-num2)
{
if?(head2?==?p1)?head2?=?p0;
else?p2-next?=?p0;
p0-next?=?p1;
}
else
{
p1-next?=?p0;
p0-next?=?NULL;
}
}
N2?=?N2?+?1;
}
void?dels(int?num2)//學生信息管理子函數(shù)(刪除學生信息)
{
struct?student?*p1,?*p2;
if?(head2?==?NULL)
{
printf("\n沒有該學生信息,無法刪除!\n");
goto?end;
}
p1?=?head2;
while?(num2?!=?p1-num2??p1-next?!=?NULL)
{
p2?=?p1;
p1?=?p1-next;
}
if?(num2?==?p1-num2)
{
if?(p1?==?head2)?head2?=?p1-next;
else?p2-next?=?p1-next;
printf("已刪除該學生信息!\n");
N2?=?N2?-?1;
}
else?printf("無該學號的學生!\n");
end:;
}
void?managements()//學生信息管理主函數(shù)
{
struct?student?*?incouse;
int?i,?num2;
printf("\t\t\t學生信息管理\n");
printf("1.新增學生信息\n");
printf("2.刪除學生信息\n");
printf("3.返回主菜單\n");
printf("請選擇(1~3):\n");
scanf("%d",?i);
switch?(i)
{
case(1)?:
{
incouse?=?(struct?student?*)malloc(sizeof(struct?student));
incouse-nelen?=?0;
incouse-nelenum[0]?=?0;
printf("學生學號\t學生姓名\n");
scanf("%d%s",?incouse-num2,?incouse-name2);
inserts(incouse);
break;
}
case(2)?:
{
printf("請輸入要刪除學生的學號:\n");
scanf("%d",?num2);
dels(num2);
break;
}
case(3)?:?break;
}
}
void?elect(struct?student?*?s)//選課
{
struct?couse?*?p;
int?num1,?i;
printf("請輸入要選課的編號:\n");
scanf("%d",?num1);
for?(i?=?0;?s-nelenum[i]?!=?0;?i++);
s-nelenum[i]?=?num1;
(s-nelen)++;
p?=?head1;
while?(p-num1?!=?num1)?p?=?p-next;
(p-nelepeo)++;
}
void?cheak()//學生選課子函數(shù)(查詢可選課程)
{
char?e;
struct?couse?*?c;
struct?student?*?s;
int?num2,?i,?j?=?0,?t?=?0;
printf("請輸入你的學號:");
scanf("%d",?num2);
s?=?head2;
while?(s-num2?!=?num2??s-next?!=?NULL)?s?=?s-next;
if?(s-num2?!=?num2)
{
printf("不存在你的信息,請進入主菜單錄入你的信息!\n");
goto?end;
}
c?=?head1;
printf("你的可選課程編號:\n");
while?(c?!=?NULL)
{
for?(t?=?0,?i?=?0;?s-nelenum[i]?!=?0;?i++)
{
if?(c-num1?==?s-nelenum[i])?t?=?1;
}
if?(t?==?0??(c-nelepeo?!=?c-Melepeo))
{
printf("%d\n",?c-num1);
j++;
}
c?=?c-next;
}
if?(j?==?0)
{
printf("你已選完所有課程,無法再多選!\n");
goto?end;
}
printf("選課(y/n)?:\n");
getchar();
e?=?getchar();
i?=?0;
while?(e?==?'y')
{
elect(s);
printf("繼續(xù)選課(y/n)?:\n");
getchar();
e?=?getchar();
}
end:;
}
void?back(struct?student?*?p)//退課
{
struct?couse?*?p1;
int?num1,?i,?j;
printf("請輸入你要退掉的課程編號:\n");
scanf("%d",?num1);
p1?=?head1;
while?(p1-num1?!=?num1)?p1?=?p1-next;
for?(i?=?0;?p-nelenum[i]?!=?num1;?i++);
for?(j?=?i;?p-nelenum[j]?!=?0;?j++)?p-nelenum[j]?=?p-nelenum[j?+?1];
p-nelenum[--j]?=?0;
(p1-nelepeo)--;
printf("退課成功!\n");
}
void?hcheak()//學生選課子函數(shù)(查詢已選課程)
{
char?c;
struct?couse?*?p0;
struct?student?*?p;
int?num2,?i,?f?=?0;
printf("請輸入學號:\n");
scanf("%d",?num2);
p?=?head2;
while?(p-num2?!=?num2??p?!=?NULL)?p?=?p-next;
if?(p?==?NULL)
{
printf("不存在你的信息,請回主菜單錄入信息:\n");
goto?end;
}
printf("已選課程編號:\n");
if?(p-nelenum[0]?==?0)
{
printf("你還沒選課!\n");
goto?end;
}
for?(i?=?0;?p-nelenum[i]?!=?0;?i++)
{
printf("%d\n",?p-nelenum[i]);
p0?=?head1;
while?(p0-num1?!=?p-nelenum[i])?p0?=?p0-next;
f?=?f?+?p0-score;
}
printf("總學分:%d\n",?f);
printf("是否進行退課(y/n)?");
getchar();
c?=?getchar();
while?(c?==?'y')
{
back(p);
printf("繼續(xù)退課(y/n)?");
getchar();
c?=?getchar();
(p-nelen)--;
}
end:;
}
void?elective()//學生選課主函數(shù)
{
int?i;
printf("\t\t\t學生選課\n");
printf("1.查詢可選課程\n");
printf("2.查詢已選課程\n");
printf("3.返回主菜單\n");
printf("請輸入(1~3):\n");
scanf("%d",?i);
switch?(i)
{
case(1)?:?cheak();?break;
case(2)?:?hcheak();?break;
case(3)?:?break;
}
}
void?listc()//輸出課程信息
{
struct?couse?*?p;
p?=?head1;
printf("課程編號??課程名稱??學分??課程已選人數(shù)??課程人數(shù)上限\n");
while?(p?!=?NULL)
{
printf("%-8d%10s%6d%8d%12d\n",?p-num1,?p-name1,?p-score,?p-nelepeo,?p-Melepeo);
p?=?p-next;
}
}
void?lists()//輸出學生信息
{
struct?student?*?p;
p?=?head2;
printf("學生學號??學生姓名??已選課程數(shù)量\n");
while?(p?!=?NULL)
{
printf("%-4d?%10s?%6d\n",?p-num2,?p-name2,?p-nelen);
p?=?p-next;
}
}
void?intoc()//存儲課程信息
{
FILE?*?fp;
struct?couse?*?p;
char?filepath[30];
printf("輸入課程信息要保存的文件路徑:");
getchar();
gets(filepath);
if?((fp?=?fopen(filepath,?"w"))?==?NULL)
{
printf("\n保存失敗!");
exit(0);
}
p?=?head1;
while?(p?!=?NULL)
{
fprintf(fp,?"%d?%s?%d?%d?%d\n",?p-num1,?p-name1,?p-score,?p-nelepeo,?p-Melepeo);
p?=?p-next;
}
fclose(fp);
printf("課程信息已保存在%s中!\n",?filepath);
}
void?intos()//存儲學生信息
{
FILE?*?fp;
struct?student?*?p;
char?filepath[30];
printf("輸入學生信息要保存的文件路徑:");
getchar();
gets(filepath);
if?((fp?=?fopen(filepath,?"w"))?==?NULL)
{
printf("\n保存失敗!");
exit(0);
}
p?=?head2;
while?(p?!=?NULL)
{
fwrite(p,?sizeof(struct?student),?1,?fp);
p?=?p-next;
}
fclose(fp);
printf("學生信息已保存在%s中!\n",?filepath);
}
void?into()//存儲信息
{
int?i;
printf("1.存儲課程信息\n");
printf("2.存儲學生信息\n");
printf("3.返回主菜單\n");
printf("請輸入(1~3)\n");
scanf("%d",?i);
switch?(i)
{
case(1)?:?intoc();?break;
case(2)?:?intos();?break;
case(3)?:?break;
}
}
void?store()//信息主函數(shù)
{
int?i;
printf("\t\t系統(tǒng)信息查看及存儲\n");
printf("1.查看課程信息\n");
printf("2.查看學生信息\n");
printf("3.存儲信息\n");
printf("4.返回主菜單\n");
printf("請輸入(1~4):\n");
scanf("%d",?i);
switch?(i)
{
case(1)?:?listc();?break;
case(2)?:?lists();?break;
case(3)?:?into();?break;
case(4)?:?break;
}
}
int?main()//主函數(shù)
{
int?i;
start:
printf("\n\t\t\t歡迎使用學生選課系統(tǒng)!\n");
printf("菜單:\n");
printf("1.錄入課程信息\n");
printf("2.課程管理\n");
printf("3.錄入學生信息\n");
printf("4.學生信息管理\n");
printf("5.學生選課\n");
printf("6.系統(tǒng)信息查看及存儲\n");
printf("7.退出系統(tǒng)\n");
printf("\n請輸入菜單選項(1~7):\n");
scanf("%d",?i);
if?(i1?||?i7)
{
printf("輸入錯誤,請重輸:\n");
goto?start;
}
switch?(i)
{
case(1)?:
{
system("cls");
inputc();
goto?start;
break;
}
case(2)?:
{
system("cls");
managementc();
goto?start;
break;
}
case(3)?:
{
system("cls");
inputs();
goto?start;
break;
}
case(4)?:
{
system("cls");
managements();
goto?start;
break;
}
case(5)?:
{
system("cls");
elective();
goto?start;
break;
}
case(6)?:
{
system("cls");
store();
goto?start;
break;
}
case(7)?:
{
system("cls");
printf("感謝使用本系統(tǒng)!\n\n再見!\n");
}
}
return(0);
}
1、首先打開c語言編輯器,新建一個C語言的文件,文件中引入C語言的頭文件,新建一個main函數(shù),函數(shù)中設(shè)置一個10個元素的數(shù)組以及一個用來求和的變量2、之后用一個for循環(huán)遍歷數(shù)組,每次都從scanf中取到用戶輸入的數(shù)并存入數(shù)組中,存完后再用sum加這個數(shù),如此便能求出數(shù)組內(nèi)元素的和了:3、最后運行程序,輸入10個數(shù)即可看到結(jié)果。以上就是用c語言從鍵盤輸入10個數(shù)存入數(shù)組并求和的方法
問題還沒解決?快來咨詢專業(yè)答主~
c語言怎么用函數(shù)的定義和調(diào)用公式存入10個數(shù)據(jù)
在線
5019位答主在線答
服務(wù)保障
專業(yè)
響應(yīng)快
馬上提問
40345人對答主服務(wù)作出評價
回答切中要害老師態(tài)度很好回答專業(yè)迅速回答很耐心認真大平臺保障,服務(wù)好回答切中要害老師態(tài)度很好回答專業(yè)迅速回答很耐心認真大平臺保障,服務(wù)好
搶首贊
分享評論
海信商城,雙12家電盛典開啟!
值得一看的海信冰箱相關(guān)信息推薦
海信直營,一站式購物!邀您大屏共享世界杯~快捷方便,正品行貨,質(zhì)量可靠,售后無憂,全國聯(lián)保,全場包郵。
海信集團控股股份有..廣告
威然 Viloran 質(zhì)享格調(diào)新高度
值得一看的mpv相關(guān)信息推薦
懸浮式中控屏彰顯優(yōu)雅,撥片式數(shù)字換擋輕松撥動磅礴動力,L2級駕駛輔助智能護航
上海上汽大眾汽車銷售有限公司廣告
C語言如何通過輸入數(shù)據(jù)來得出函數(shù)
小啵啵魚1
服務(wù)態(tài)度好
您好親,C語言有多個函數(shù)可以從鍵盤獲得用戶輸入,它們分別是:scanf():和 printf() 類似,scanf() 可以輸入多種類型的數(shù)據(jù)。getchar()、getche()、getch():這三個函數(shù)都用于輸入單個字符。gets():獲取一行數(shù)據(jù),并作為字符串處理。scanf() 是最靈活、最復雜、最常用的輸入函數(shù),上節(jié)我們已經(jīng)進行了講解,本節(jié)接著講解剩下的函數(shù),也就是字符輸入函數(shù)和字符串輸入函數(shù)。
函數(shù)參數(shù)有傳值和傳址兩種,你只要把數(shù)組的首地址傳過去就可以了,函數(shù)參數(shù)是個指針,接收數(shù)組首地址,就可以在子函數(shù)中用指針調(diào)用數(shù)組中的數(shù)據(jù)。