❶ c语言如何对数组中的数据进行处理
类似下面简单处理下
#include"stdlib.h"
#include"stdio.h"
#include"string.h"
charrecord[100][5][16];
intcnt=0;
#defineIS_ALPHA(a)((a>='a'&&a<='z')||(a>='A'&&a<='Z')||(a>='0'&&a<='9')||(a=='_'))
char*get_record(char*str){
inti=0,j=0;
if(cnt>=100)returnNULL;
while(1){
if(IS_ALPHA(*str)){
if(j<15)
record[cnt][i][j++]=*str;
}
else{
if(j){
record[cnt][i][j++]=0;
j=0;
i++;
}
if(*str==0||i==5)break;
}
str++;
}
//addornot
if(i==5){
intn=cnt;
for(i=0;i<cnt;i++){
if(strcmp(record[i][0],record[cnt][0])==0&&
strcmp(record[i][1],record[cnt][1])==0){
if(atoi(record[i][4])<atoi(record[cnt][4])){
strcpy(record[i][4],record[cnt][4]);
}
n--;
break;
}
}
cnt=n+1;
}
return(*str?str:NULL);
}
voidprint_record(){
inti;
for(i=0;i<cnt;i++){
printf("%s%s%s%s%s ",
record[i][0],record[i][1],record[i][2],record[i][3],record[i][4]);
}
}
intmain(){
charstr[]="
DN100CDN_100123
DN100CDN_200216
DN100CDN_100106
DN100CDN_300106
DN100CDN_300107
DN100CDN_200218";
char*s=str;
while(s=get_record(s)){}
print_record();
return0;
}
❷ c语言编写学生成绩处理
//给你个示例,仅供参考
#include<stdio.h>
#include<stdlib.h>
#defineNO_LEN11
#defineNAME_LEN9
#defineSTUDENT_NUM5
#defineTOP_THREE3
typedefstructstudent
{
charno[NO_LEN];
charname[NAME_LEN];
floata;
floatb;
floatc;
floatavg;
}ST;//st[STUDENT_NUM];
intget_student_info(ST*st,intlen);
voiddisplay(constST*st,intlen);
voidcalculate_average(ST*st,intlen);
voidsort(ST*st,intlen);
intmain(intargc,char*argv[])
{
STst[STUDENT_NUM];
get_student_info(st,STUDENT_NUM);
calculate_average(st,STUDENT_NUM);
sort(st,STUDENT_NUM);
display(st,STUDENT_NUM);
display(st,TOP_THREE);
return0;
}
/*从键盘输入STUDENT_NUM个学生的信息*/
intget_student_info(ST*st,intlen)
{
inti=0,ret=0;
if(0==st||0>=len||STUDENT_NUM<len)
{
printf("parametererror ");
returnret=1;
}
for(;i<len;++i)
{
printf("输入第%d个学号、姓名、三门课成绩:",i+1);
scanf("%10s%8s%f%f%f",st[i].no,st[i].name,&st[i].a,&st[i].b,&st[i].c);
}
returnret;
}
/*显示前len个学生的信息*/
voiddisplay(constST*st,intlen)
{
inti=0;
if(0==st||0>=len||STUDENT_NUM<len)
{
printf("parametererror ");
return;
}
printf("================================== ");
for(;i<len;++i)
{
printf("%s%s%.1f%.1f%.1f%.1f ",
st[i].no,st[i].name,st[i].a,st[i].b,st[i].c,st[i].avg);
}
}
/*计算每个学生的平均成绩*/
voidcalculate_average(ST*st,intlen)
{
inti=0;
if(0==st||0>=len||STUDENT_NUM<len)
{
printf("parametererror ");
return;
}
for(;i!=len;++i)
{
st[i].avg=(st[i].a+st[i].b+st[i].c)/3.0;
}
}
/*冒泡排序降序排列*/
voidsort(ST*st,intlen)
{
inti=0,j=0;
STtmp;
if(0==st||0>=len||STUDENT_NUM<len)
{
printf("parametererror ");
return;
}
for(;i<len-1;++i)
{
for(j=0;j<len-1-i;++j)
{
if(st[j].avg<st[j+1].avg)
{
tmp=st[j];
st[j]=st[j+1];
st[j+1]=tmp;
}
}
}
}
❸ C语言的基本数据类型和举例!
C语言有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。尽管这几种类型数据的长度和范围随处理器的类型和C语言编译程序的实现而异,但以bit为例,整数与CPU字长相等,一个字符通常为一个字节,浮点值的确切格式则根据实现而定
C语言还提供了几种聚合类型(aggregate types),包括数组、指针、结构、共用体(联合)、位域和枚举
除v o i d类型外,基本类型的前面可以有各种修饰符。修饰符用来改变基本类型的意义,以便更准确地适应各种情况的需求。修饰符如下:
�6�1 signed(有符号)。
�6�1 unsigned(无符号)。
�6�1 long(长型符)。
�6�1 short(短型符)。修饰符s i g n e d、s h o r t、l o n g和u n s i g n e d适用于字符和整数两种基本类型,而l o n g还可用于d o u b l e(注意,由于long float与d o u b l e意思相同,所以A N S I标准删除了多余的long float)。
❹ C语言编程:GPS数据处理
这是通过online judge测试的
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
int check(char *);
void utc(char *);
char bjtime[7];
int main()
{
char a[200];
int f=0;
char *ptr;
do
{
scanf("%s",a);
if(strncmp("$GPRMC",a,6)==0)
{
ptr=a;
for(int i=0;i<2;i++){
ptr=strchr(ptr,',');
ptr++;
}
if (ptr[0]=='A' && check(a))
{
utc(a);
f=1;
}
}
}while(strcmp("END",a)!=0);
if (f) printf("%c%c:%c%c:%c%c",bjtime[0],bjtime[1],bjtime[2],bjtime[3],bjtime[4],bjtime[5]);
return 0;
}
int check(char *s)
{
char *ck,*str;
int i;
char m=s[1];
for(i=2;i<strlen(s)-3;i++)
m^=s[i];
int z=(int)m%65536;
printf("%0x",z);
ck=&s[strlen(s)-2];
int x=strtol(ck,&str,16);
if(x==z) return 1;
else return 0;
}
void utc(char * s)
{
char *str1;
char str[7];
str1=&s[7];
strncpy(bjtime,str1,6);
int x=strtol(bjtime,&str1,10);
x+=80000;
x%=240000;
for(int i=5;i>=0;i--){
bjtime[i]=(char)((int)'0'+x%10);
x/=10;
}
}
❺ C语言编程处理数据
#include <stdio.h>
#include <stdlib.h>int main(){
unsigned long i,j;
long num,a[103680][720]; // 457920 - 354240 = 103680
FILE *fp;
char filename[50];
if((fp = fopen(filename,"r")) == NULL) {
printf("NO FIFE!\n");
exit(0);
}
for(i = 0;i < 354240;i++) { // 将前354240行读出,以便移动文件内部指针到需要的位置
for(j = 0;j < 720;j++)
fscanf(fp,"%d",&num); //
}
for(i = 0;i < 103680;i++) { // 开始读入需要的数据
for(j = 0;j < 720;j++) {
fscanf(fp,"%d",&a[i][j]);
}
}/* 对数据进行必要的处理 */ fclose(fp);
return 0;
}
❻ C语言编程,对文件中数据进行处理
读入文件ex.c,并把其中所有的小写字母改为大写字母,其余字符不变,在屏幕上输出。
#include<stdio.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("ex.c","r"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
ch=fgetc(fp);
while (ch!=EOF)
{
if(ch>='a'&&ch<='z')ch-=32;
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
❼ C语言中怎么实现大量数据的处理
2万多的数据并不算很大(当然,这要看每条数据有多大),普通的文件处理就行,开辟数组,读取文件即可。
如果整个文件达到几十M甚至更大,可以使用二进制读写,fread、fwrite等。
如果该文件比内存还大,这又是另外的情形了,可以分段处理。