导航:首页 > 编程知识 > 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语言编程怎么打数据相关的资料

热点内容
app怎么查看流量用在什么网站 浏览:684
为什么sns文件找不到 浏览:671
解压cad提示文件破损 浏览:249
如何对图片加密文件名 浏览:410
数据管理库系统软件有哪些 浏览:861
苹果7如何打开软件网络连接 浏览:831
手机图片加入文件管理 浏览:718
pp助手210历史版本 浏览:259
摄像头都有哪些app 浏览:303
macos如何删除文件 浏览:150
大厂用什么语言编程 浏览:714
万户网络应对大并发用户访问解决方案 浏览:515
日常生活中常见的数据有哪些 浏览:19
无线网络如何设置固定ip 浏览:789
编程你们用哪个软件 浏览:96
涂鸦app如何恢复初始 浏览:722
网络监控断网后公司 浏览:947
狼人杀app哪个好玩 浏览:76
ios发微博代码 浏览:706
如何更改mac电脑名称和密码错误 浏览:428

友情链接