导航:首页 > 编程知识 > c语言编程怎么打数据

c语言编程怎么打数据

发布时间:2023-05-31 14:06:33

Ⅰ C语言编程题逆序数(大数据)给你一个序列x1,x2,…,xn如果数对< xi,xj >其中i< j而xi> xj,称为逆序数对

印象中好像是利用归并排序的性质来做的……(好像)
假设排序a,b,c,d,e,f从小到大排
二分回a,b,c / d,e,f (abc与def已分别排好序答)

主要看前面的a,b,c,有新数组ar[],若最小为d
ar:d
第二小是a则
ar:d,a (这里a跨过了d,表明(a,d)是逆序的)
若:
ar:d,a,b,e,f,
最大是c,表明c跨过了def(5-2,不计ab),说明(c,d),(c,e),(c,f)是逆序
……
其实解题步骤就是归并排序加上一些判断与加减法
//注:不知道会不会超时呢

Ⅱ 用C语言如何实现大数据的加法,且是包括整数和小数的运算

刚写的 看看符合你要求不

#include<stdio.h>
#include<string.h>
typedefstruct
{
inta[200];
intb[200];
}NUM;
voidformat_num(NUM*n,char*str)
{
char*p_dot=NULL;
char*p;
inti=0;
memset(n,0,sizeof(*n));
for(p=str;*p;p++)
if(*p=='.')break;
if(*p)p_dot=p;

p--;
while(p>=str)
{
n->a[i++]=*p---'0';
}
p=p_dot;
if(p==NULL)return;
i=0;
p++;
while(*p)
n->b[i++]=*p++-'0';
}

voidprint_num(NUM*n)
{
inti,j;
for(i=sizeof(n->a)/sizeof(n->a[0])-1;i>=0;i--)
if(n->a[i])break;
if(i>=0)
for(;i>=0;i--)
printf("%d",n->a[i]);
elseprintf("0");
for(i=sizeof(n->b)/sizeof(n->b[0])-1;i>=0;i--)
if(n->b[i])break;
if(i>=0)
{
printf(".");
for(j=0;j<=i;j++)
printf("%d",n->b[j]);
}
}

voidadd(NUM*a,NUM*b,NUM*c)
{
intt=0;
inti;
for(i=sizeof(a->b)/sizeof(a->b[0])-1;i>=0;i--)
{
t+=a->b[i]+b->b[i];
c->b[i]=t%10;
t/=10;
}
for(i=0;i<sizeof(a->a)/sizeof(a->a[0]);i++)
{
t+=a->a[i]+b->a[i];
c->a[i]=t%10;
t/=10;
}
}

intmain()
{
charsa[100],sb[100];
NUMa,b,c;
scanf("%s%s",sa,sb);
format_num(&a,sa);
format_num(&b,sb);
print_num(&a);
printf("+");
print_num(&b);
printf("=");
add(&a,&b,&c);
print_num(&c);
printf(" ");

return0;
}

Ⅲ c语言如何输入很大的数据

测试数据一定是保存在文件中的
只要使用while语句,分段把数字读出来,然后各位数相加,再mod 3求余

可以读一段,把这些数字相加,然后再求余,然后再读一段。。。
这样的过程,就可以把超大数据解决了~

Ⅳ 我只会汇编和C语言,想转大数据,可否哪里有入门的教程或者课程可以学习啊

入门:如果你会汇编和C语言,可以转大数据,因为在你学习大数据的时候,有一段时内间是学习hadoop,其中一部容分牵涉编程,那样的话,你入门会比较快一点

课程:目前市场培训的有几十家,看目前市场口碑最好的就那么三四家,比如:光环大数据,小巷,等业内口碑都非常不错,可以去看啊可能

Ⅳ c语言处理文件里的大数据

说清楚点!复
最简单大文制件分割成小文件,加缓存分批读取小文件进行处理,处理结果存储起来,再将每个小文件处理结果综合起来。
当然具体问题具体分析,这是最基本的思路。

借助工具的话,数据库,根据需求设计表,然后将文本文件导入数据库,为了处理速度,注意分表分区,检索语句也要注意效率问题。
http://www.uml.org.cn/sjjm/201305142.asp

Ⅵ c语言中怎么处理一个特别大的数据的运算

最简单的办法是将大数当作字符串进行处理,也就是将大数用10进制字符数组进行表示,

然后模拟人们手工进行“竖式计算”的过程编写其加减乘除函数。但是这样做效率很低,

因为1024位的大数其10进制数字个数就有数百个,对于任何一种运算,都需要在两个有

数百个元素的数组空间上做多重循环,还需要许多额外的空间存放计算的进位退位标志

及中间结果。其优点是算法符合人们的日常习惯,易于理解。

Ⅶ C语言基础,大数据的输入和输出

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineMAX101
intcheck(char*a){
inti,n,k=1;
n=strlen(a);
for(i=0;i<n;i++)
(a[i]>'9'||a[i]<'0'){
k=0;
break;
}
returnk;
}
intplus(char*a,char*b,int*s){
inti,j,n,m,t,k=0;
//printf("%s %s ",a,b);
i=strlen(a)-1;
j=strlen(b)-1;
t=0;
while(i>=0&&j>=0){
t=t+a[i--]-'0'+b[j--]-'0';
s[k++]=t%10;
t=t/10;
}
if(t&&(i!=j))
s[k]=t;
if(t&&(i==j))
s[k++]=t;
while(i>=0){
s[k]+=a[i--]-'0';
k++;
}
while(j>=0){
s[k]+=b[j--]-'0';
k++;
}
for(i=k-1;i>=0;i--){
printf("%d",s[i]);
}
printf(" ");
returnk;
}
intmain(intargc,char*argv[]){
chara[MAX],b[MAX];
intc[MAX+2]={0};
scanf("%s%s",&a,&b);
//printf("%s %s ",a,b);
if(check(a)&&check(b))
plus(a,b,c);
else
printf("error ");
return0;
}

阅读全文

与c语言编程怎么打数据相关的资料

热点内容
创建隐藏电脑文件夹的2个方法 浏览:488
小半3文件管理器在哪里 浏览:282
delphi连接数据库后如何保存密码 浏览:26
access数据库链接表 浏览:63
苹果桌面透明度设置 浏览:108
u盘未格式化提示重要文件 浏览:544
电脑c盘正常有多少个文件 浏览:376
win7激活工具非oem 浏览:84
天正保存成cad文件 浏览:657
迅雷文件夹多少钱 浏览:873
小米手机文件管理如何压缩文件夹 浏览:975
哪些电商企业应用了大数据 浏览:177
硬盘检测和修复工具 浏览:845
中文存入数据库问号 浏览:595
视频文件质量技术审查内容 浏览:809
云起书院app是什么 浏览:481
ps形状工具相减 浏览:572
建立顾客网络的方法 浏览:460
nas忘记密码 浏览:933
怎样编辑word文件手机 浏览:570

友情链接