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

热点内容
小米相册备份文件在哪 浏览:866
360n5版本要更新吗 浏览:466
喜欢猫和狗应该用什么app 浏览:141
java农历转换公历 浏览:32
文件317mb压缩后有多少 浏览:229
内儿科科室应做多少个文件盒 浏览:433
chttp读取json数据格式 浏览:381
安卓车载导航一会没声音了 浏览:339
u盘删除音乐文件 浏览:194
prcc20152版本下载 浏览:138
翻译一份英语文件多少钱 浏览:866
苹果手机浏览器看flash 浏览:335
app内如何改文字 浏览:275
中国银行app怎么切换登录 浏览:956
打印pdf发票文件如何打半页 浏览:252
文件五十几兆为什么不能微信收藏 浏览:11
msp430f5529头文件 浏览:99
用哪个小说app比较好 浏览:144
建设项目用地预审文件有效期为多少年 浏览:827
三菱编程仿真io表怎么填 浏览:638

友情链接