Ⅰ c語言 統計學生成績
//按你要求來的
不過只輸入了3組數,你可以自己改
#include
#include
#define
max
100
typedef
struct
{
char
name[max];//
姓名
int
num;//學號
int
eng;//英語成績
int
pro;//程序設計成績
int
maths;//數學成績
}student;
void
input(student
s[],int
n)//輸入以及求總分
{
int
sum=0;
for(int
i=0;i<n;i++)
{
printf("輸入第%d個學生的姓名:\n",i+1);gets(s[i].name);
printf("輸入第%d個學生的學號:\n",i+1);scanf("%d",&s[i].num);
printf("輸入第%d個學生的英語成績:\n",i+1);scanf("%d",&s[i].eng);
printf("輸入第%d個學生的程序設計成績:\n",i+1);scanf("%d",&s[i].pro);
printf("輸入第%d個學生的數學成績:\n",i+1);scanf("%d",&s[i].maths);
sum=s[i].eng+s[i].pro+s[i].maths;
printf("總分為:%d\n",sum);
fflush(stdin);
}
}
void
sumscore(student
s[],int
n)//單科成績總和
{
int
sum_eng=0,sum_pro=0,sum_maths=0;
for(int
i=0;i<n;i++)
{
sum_eng+=s[i].eng;
sum_pro+=s[i].pro;
sum_maths+=s[i].maths;
}
printf("英語總成績為:%d\n",sum_eng);
printf("程序設計總成績為:%d\n",sum_pro);
printf("數學總成績為:%d\n",sum_maths);
}
void
searchst(student
s[],int
n)//查找學生
{
char
e[max];int
number;
printf("輸入要查詢的姓名:\n");gets(e);
printf("輸入要查詢的學號:\n");scanf("%d",&number);
for(int
i=0;i<n;i++)
if(!strcmp(s[i].name,e)&&number==s[i].num)
{
printf("英語成績:%d\n程序設計成績:%d\n數學成績:%d\n",s[i].eng,s[i].pro,s[i].maths);
printf("總成績為:%d\n",s[i].eng+s[i].pro+s[i].maths);
return;
}
printf("查無此人!");
}
void
main()
{
student
s[3];int
n=3;//這里只用了3個測試,30個太誇張了,可以改成30組數....
input(s,n);
printf("\n");
sumscore(s,n);
printf("\n");
searchst(s,n);
printf("\n");
}
Ⅱ 如何用C語言統計中文的字元數
C中的漢字用「機內碼」,一個漢字兩位元組,最高位都是1,所以可以用下列代碼求得一個字元串里漢字的個數:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
char a[]="12我34們56都7是來自五a湖c四de海bfg";
int i,sum;
for(sum=i=0;a[i];i++)
if(a[i]<0) sum++;//最高位為1(負數)的是一個漢字的一半
printf("There are %d Chinese characters in this string.\n",sum/2);//輸出漢字總數
return 0;
}
Ⅲ c語言統計大小寫字母 數字個數
#include <stdio.h>
#include <stdlib.h>
#define N 100
void func3()
{
char str[N];
int i,lower=0,upper=0,digit=0,space=0;
long others=0;
printf("Input a string:");
gets(str);
for(i=0;str[i]!='