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

c語言統計

發布時間: 2022-02-16 05:44:57

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]!='';i++)

{

if(str[i]>='a' && str[i]<='z')

lower++; /*統計小寫英文字母*/

else if(str[i]>='A' && str[i]<='Z')

upper++; /*統計大寫英文字母*/

else if(str[i]>='0' && str[i]<='9')

digit++; /*統計字元串*/

else if(str[i]==' ')

space++;

else

others++; /*統計其他字母*/

}

printf("lower English character:%d ",lower);

printf("upper English character:%d ",upper);

printf("digit character:%ld ",digit);

printf("space:%d ",space);

printf("other character: %ld ",others);

return 0;

}

int main()

{

while(1)

{

func3();

printf(" ");

system("pause");

}

return 0;

}

(3)c語言統計擴展閱讀:

程序實現思路分析

統計大小寫字母、數字的個數,首先要判斷出字元是屬於哪一種,然後增加計數。

1、判斷

小寫字母的范圍為:'a'~'z'

大寫字母的范圍為:'A'~'Z'

數字的范圍為:'0'~'9'

2、聲明三個int變數並賦值初值為0

lower——統計小寫英文字母

upper——統計大寫英文字母

digit——統計數字

Ⅳ C語言統計函數

如果你的記錄是按順序排號的,那麼只需要在C中加上資料庫查詢語言查到最大的號就可以了.
如果不是有順序號的,可以用SQL語言中的select count

Ⅳ C語言字元統計

幫你優化了一下,再試試吧
#include<stdio.h>
int main()
{
char t[500]; //題目說了,不超過500個字元
int n,i,j,k,a,b,c,d;
scanf("%d",&n);getchar(); //用getchar()來過濾掉本行的回車
for(i=0;i<n;i++){
a=b=c=d=0;
for(j=0;j<500;j++){
t[j]=getchar();
if(t[j]=='\n')
break;
}
t[j]='\0'; //清除最後一個字元回車
for(k=0;t[k];k++) //遍歷數組直到串結束
{
if((t[k]>=65&&t[k]<=90)||(t[k]>=97&&t[k]<=122))
a=a+1;
else if(t[k]>=48&&t[k]<=57)
b=b+1;
else if(t[k]==32)
c=c+1;
else
d=d+1;
}
printf("Letter %d\n",a);
printf("Number %d\n",b);
printf("Space %d\n",c);
printf("Other %d\n",d); //加個回車
if ( i!=n-1 )
printf("\n"); //去個回車
}
return 0;
}

Ⅵ C語言數據統計

#include <stdio.h>
#include <errno.h>/*錯誤處理頭文件*/

#define IN_FILE_NAME "file15.txt"/*要輸入的文件*/
int sumclass = 0;/*全局變數*/

struct theclassinfo /*一個班的信息*/
{
int classno; /*班號*/
int sumstudent;/*總人數*/
float sumscore;/*總成績*/
};

void addtoclass (int classno, float score, struct theclassinfo theclass[]);/*班級信息添加*/
int main()
{
int stuno = 0, sum = 0, i;
FILE *ptrin; /*打開文件時的指針*/
int sid, sclassno;
float average, score;
char sname[20];
struct theclassinfo theclass[100];
if ((ptrin = fopen(IN_FILE_NAME, "r")) == NULL)/*以讀的方式打開輸入文件*/
{
printf("程序運行中發生了錯誤!\n");
perror(IN_FILE_NAME);/*錯誤處理*/
getchar();
}
else/*成功打開進行下面操作*/
{
printf("學號\t班級\t分數\t姓名\n");
while (!feof(ptrin))
{
fscanf(ptrin, "%d %d %f %s", &sid, &sclassno, &score, sname);
sum += score;
stuno ++;
addtoclass(sclassno, score, theclass);
printf("%d\t%d\t%.2f\t%s\n", sid, sclassno, score, sname);
}
average = sum/stuno;
printf("學生數為:%d\n", stuno);
printf("數學成績平均分為:%f\n\n", average);
printf("各班級平均分如下:\n");
printf("班級號\t平均分\n");
for (i = 0; i < sumclass; i++)
{
printf("%d\t%f\n", theclass[i].classno, theclass[i].sumscore/theclass[i].sumstudent);
}
fclose(ptrin);
}

return 0;
}

void addtoclass (int classno, float score, struct theclassinfo theclass[])
{
int i;
for (i = 0; i < sumclass; i++)
{
if (theclass[i].classno == classno)
{
theclass[i].sumstudent++;
theclass[i].sumscore += score;
break;
}
}
if (i == sumclass)
{
theclass[i].classno = classno;
theclass[i].sumstudent = 1;
theclass[i].sumscore = score;
sumclass++;
}
}

測試數據 同目錄下 的file15.txt 內容如下:
1 2 95 陳
2 2 94 啊
3 3 80 飛
4 9 92 d
5 9 56 dss

結果:
學號 班級 分數 姓名
1 2 95.00 陳
2 2 94.00 啊
3 3 80.00 飛
4 9 92.00 d
5 9 56.00 dss
學生數為:5
數學成績平均分為:83.000000

各班級平均分如下:
班級號 平均分
2 94.500000
3 80.000000
9 74.000000

本來想用鏈表保存班級的。
測試看看 有沒有問題。

Ⅶ 請問如何用c語言統計一個數據中0的個數

看了前兩位的回答,我不禁要問一句,假若我輸入的數據是一個很長的數,如
恐怕用長整形也表示不了吧?

要解決樓主的問題,得先有個前提,就是數據究竟最大會有多大。

這里姑且假設最長位數不超過100位,則可以編制以下程序:
#include <stdio.h>
#define N 100

void main()
{
char ch[N];
int i,count=0;

printf("Input date\(shorter than %d\):",N);
gets(ch);

for(i=0;ch[i]!='\0';i++)
if(ch[i]=='0') count++;

printf("The number of 0 is: %d.",count);
}

程序已經經過調試了。
其中,我們可以修改N的值,從而來適應不同的數據長度要求。
該程序優缺點:
1、程序功能上包含了上面兩位仁兄的程序
2、程序靈活,只需小小改動即可滿足不同要求。
3、當數據的位數不大,能夠為C語言中的長整型數據表達時,該程序相對於2樓的程序來說,佔用的內存就大了。不過在當今內存大的歷史背景這也就不算是什麼問題了。

Ⅷ c語言問題 統計不同數字個數

/*
由鍵盤輸入20個整數(由空格分隔開),統計不同數字個數
*/
#include <stdio.h>

int main()
{
int num[20] = {0};
int i=0;
for( ;i<20;++i )
{
scanf("%d",&num[i]);
}
int size = 0;
int isfind = 0;
for( i=0;i<20;++i )
{
int j = 0;
for( ;j<i;++j )
{
if( num[j] == num[i] )
{
isfind = 1;
break;
}
}
if( isfind == 1 )
{
++size;
isfind = 0;
}
}

printf("\n%d\n",size );

return 0;
}

Ⅸ 數值統計 C語言!!!

#include<stdio.h>
intmain()
{intn,z,f,l;floatx;
scanf("%d",&n);
while(n>0)
{for(z=f=l=0;n--;)
{scanf("%f",&x);
if(x>0)z++;
elseif(x<0)f++;
elsel++;
}
printf("%d%d%d ",f,l,z);
scanf("%d",&n);
}
return0;
}