/*?
第壹題:已知某班N(〈=50)名學生進行了高數、英語和C語言等3門課考試,將3門課?
的成績以及計算3門課的總分存放於壹個二維數組中,將學生姓名存放在另壹個二維字?
符數組中,按總分(由高到低)將學生姓名排序並輸出排序結果(序號和姓名)。?
*/?
#include?"stdafx.h"?
#include?"stdio.h"?
struct?scoreInfo{?
int?scoreMath;?
int?scoreProC;?
int?scoreEng;?
int?scorSum;?
};?
struct?studentInfo{?
char?name[20];?
struct?scoreInfo?_scoreInfo;?
};?
void?inputInfo(struct?studentInfo?*stu,int?n)?
{?
int?i?=?0;?
for(i?=?0;?i?<?n;?i++)?
{?
printf("第%d個學生的姓名:",i+1);?
gets(stu[i].name);?
printf("第%d個學生的數學成績:",i+1);?
scanf("%d",&stu[i]._scoreInfo.scoreMath);?
getchar();?
printf("第%d學生的C語言成績:",i+1);?
scanf("%d",&stu[i]._scoreInfo.scoreProC);?
getchar();?
printf("第%d個學生的英語成績:",i+1);?
scanf("%d",&stu[i]._scoreInfo.scoreEng);?
getchar();?
}?
printf("\n");?
}?
void?outputInfo(struct?studentInfo?*stu,int?n)?
{?
int?i?=?0;?
for?(i?=?0;?i?<?n;?i++)?
{?
stu[i]._scoreInfo.scorSum?=?stu[i]._scoreInfo.scoreEng?+?stu[i]._scoreInfo.scoreMath?
+?stu[i]._scoreInfo.scoreProC;?
}?
printf("姓名\t數學成績\tC語言成績\t英語成績\t總分\n");?
for?(i?=?0;?i?<?n;?i++)?
{?
printf("%s\t%d\t\t%d\t\t%d\t\t%d\n",stu[i].name,stu[i]._scoreInfo.scoreMath,?stu?
[i]._scoreInfo.scoreProC?
,stu[i]._scoreInfo.scoreEng,stu[i]._scoreInfo.scorSum);?
}?
}?
void?arry_max_to_min(struct?studentInfo?*stu,int?n)?
{?
int?indexi;?
int?indexj;?
struct?studentInfo?_temp;?
//?struct?stdentInfo?*ptemp;?
//?ptemp?=?stu;?
for?(indexi?=?0;?indexi?<?n;indexi++)?
{?
for?(indexj?=?indexi+1;?indexj?<?n;?indexj++)?
{?
if?(stu[indexi]._scoreInfo.scorSum?<?stu[indexj]._scoreInfo.scorSum)?
{?
_temp?=?stu[indexj];?
stu[indexj]?=?stu[indexi];?
stu[indexi]?=?_temp;?
}?
}?
}?
printf("總分從高到低排列:\n");?
for?(indexi?=?0?;?indexi?<?n;?indexi++)?
{?
printf("%s\t%d\t\t%d\t\t%d\t\t%d\n",stu[indexi].name,stu[indexi]._scoreInfo.scoreMath,?stu?
[indexi]._scoreInfo.scoreProC?
,stu[indexi]._scoreInfo.scoreEng,stu[indexi]._scoreInfo.scorSum);?
}?
}?
int?main()?
{?
int?studentNum;?
struct?studentInfo?stu[50];?
printf("輸入學生數:");?
scanf("%d",&studentNum);?
getchar();?
inputInfo(stu,studentNum);?
outputInfo(stu,studentNum);?
arry_max_to_min(stu,studentNum);?
return?0;?
}?
運行結果:?
輸入學生數:3?
第1個學生的姓名:Jack?
第1個學生的數學成績:89?
第1學生的C語言成績:86?
第1個學生的英語成績:96?
第2個學生的姓名:Tom?
第2個學生的數學成績:95?
第2學生的C語言成績:94?
第2個學生的英語成績:92?
第3個學生的姓名:Star?
第3個學生的數學成績:98?
第3學生的C語言成績:78?
第3個學生的英語成績:89?
姓名?數學成績?C語言成績?英語成績?總分?
Jack?89?86?96?271?
Tom?95?94?92?281?
Star?98?78?89?265?
總分從高到低排列:?
Tom?95?94?92?281?
Jack?89?86?96?271?
Star?98?78?89?265?
Press?any?key?to?continue?
/*?
第二題:編寫函數fun(char?s[?],?int?num[?]),其功能是統計字符串?s?中數字字符、大寫字母、?
小寫字母和空格字符的出現次數,統計結果存於num數組中。再設計main函數,調用fun函數,?
實現預期功能。?
*/?
#include?"stdafx.h"?
#include?"stdio.h"?
#include?"string.h"?
void?fun(char?*s,?int?*num)?
{?
int?length;?
int?index;?
int?sum_number?=?0;?
int?sum_char?=?0;?
int?sum_spac?=?0;?
int?sum_CHAR?=?0;?
length?=?strlen(s);?
for?(index?=?0;?index?<?length;?index++)?
{?
if?((*s?>=?'0')?&&?(*s?<=?'9')?)?
{?
sum_number++;?
}?
if?((*s?>=?'a')?&&?(*s?<?'z')?)?
{?
sum_char++;?
}?
if?((*s?>=?'A')?&&?(*s?<=?'Z')?)?
{?
sum_CHAR++;?
}?
if?(*s?==?0x20?)?
{?
sum_spac++;?
}?
s++;?
}?
num[0]?=?sum_number;?
num[1]?=?sum_CHAR;?
num[2]?=?sum_char;?
num[3]?=?sum_spac;?
}?
int?main()?
{?
char?testarry[50];?
int?num[4];//用來放數字num[0],num[1]大寫字母,num[2]小寫字母,num[3]空格數字的個數?
//num?=?(int?*)malloc(sizeof(int)?*?4);?
printf("請輸入字符串:");?
gets(testarry);?
fun(testarry,num);?
//?printf("%s",testarry);?
printf("數字的個數:%d\n大寫字母的個數:%d\n小寫字母的個數:%d\n空格數字的個數:%d\n",?
num[0],num[1],num[2],num[3]);?
return?0;?
}?
運行結果:?
請輸入字符串:12345?AFASDFE?74897?asfdasf?
數字的個數:10?
大寫字母的個數:7?
小寫字母的個數:7?
空格數字的個數:3?
Press?any?key?to?continue?
第三題:?
#include?"stdafx.h"?
#include?"stdio.h"?
int?main()?
{?
int?i;?
int?j;?
int?k;?
int?half?=?0;?
char?prin;?
prin?=?'A';?
for?(i?=?0;?i?<?26;?i++)?
{?
prin?=?'A';?
for?(j?=?26-i-1;j?>?0;?j--)?
{?
printf("?");?
}?
for?(k?=?1;?k<=?2*i+1?;k++)?
{?
half?=?k;?
if?(--half?<=?i)?
{?
printf("%c",prin++);?
}?
else?
{?
printf("%c",--prin?-?1);?
}?
}?
printf("\n");?
}?
return?0;?
}?
運行結果:?
A?
ABA?
ABCBA?
ABCDCBA?
ABCDEDCBA?
ABCDEFEDCBA?
ABCDEFGFEDCBA?
ABCDEFGHGFEDCBA?
ABCDEFGHIHGFEDCBA?
ABCDEFGHIJIHGFEDCBA?
ABCDEFGHIJKJIHGFEDCBA?
ABCDEFGHIJKLKJIHGFEDCBA?
ABCDEFGHIJKLMLKJIHGFEDCBA?
ABCDEFGHIJKLMNMLKJIHGFEDCBA?
ABCDEFGHIJKLMNONMLKJIHGFEDCBA?
ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA?
ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA?
ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA?
Press?any?key?to?continue?
[附加說明:]由於百度在欄目裏屏蔽了空格和TAB,所以看不出效果,把
需要的話妳可以把Email給我?我發給妳。打印效果這個上面看不出來。呵呵
Press?any?key?to?continue