当前位置:首页 » 编程语言 » 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;
}