c语言-请教C语言的问题解决方案

问题描述

请教C语言的问题解决方案

数组求和,这个好像不能够运行,但是提交代码可以,而且加入了getch();和system pause;试过了也不行!
#include
#include
void Print(int*data,int n)
{ int i;
for(i=0;i<n;i++)
{

printf("%d",data[i]);

         }
      printf("n");
 }

int Split(int *data,int pre,int rear)
{
int value=data[pre];
while(pre
{
while(data[rear]>=value && pre<rear) rear--;

data[pre]=data[rear];
while(data[pre]<value && pre<rear) pre++;
data[rear]=data[pre];
}
data[pre]=value;
return pre;
}
//快速排序
void QuickSort(int *data,int pre,int rear)
{

if(pre<rear)

{ int mid=Split(data,pre,rear);
QuickSort(data,pre,mid-1);

QuickSort(data,mid+1,rear);
}

}
int main()
{
int i,n;
int data;
scanf("%d",&n);
data=(int
)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%d",&data[i]);

        }

}
    QuickSort(data,0,n-1);
    Print("data,n");
    getch();
    return 0;

}
还有一个能提交但是不能运行,getch();用过了也不行!

Fibonacci数列的
#include
#define N 1000001
#define M 10007
int main()
{
int a[N],i,n;
scanf("%d",&n);
a[1]=1;a[2]=1;
for(i=3;i<=n;i++)
a[i]=(a[i-1]+a[i-2])%M;
printf("%d",a[n]);
getch();
return 0;
}

解决方案

int a[N] 这个数组定义的也太大了吧,已经超过 VC 或 VS 系统编译工具的默认设置,这样的程序运行不起来也是正常的。
可以考虑将 a 所需要的内存动态分配:malloc / new 都可以的。

解决方案二:

int a[N]把他定义成全局的

解决方案三:

定义的数组有点大了,定义成全局的

解决方案四:

int main()
{
int a,i,n;
scanf("%d",&n);
a = (int
)malloc(n*sizeof(int));
a[1]=1;a[2]=1;
for(i=3;i<=n;i++)
a[i]=(a[i-1]+a[i-2])%M;
printf("%d",a[n]);
getch();
free(a);
return 0;
}
数组a动态分配比较好。

解决方案五:

第二个是因为数组是连续存储的,你申请的内存过大,没有这么多,可能导致越界,我把数改小了,是可以运行的,如果你非要用这么大的数,可以用链表存储

解决方案六:

你这个是斐波那契数列对吧,我记得通项公式是an=1/根号5((1+根号5之和/2)的n次方-(1-根号5之差/2)的n次方),n=1,2,3...
用这个公式行不行啊???

时间: 2024-08-31 18:37:34

c语言-请教C语言的问题解决方案的相关文章

r语言-请教R语言的一个数据统计问题

问题描述 请教R语言的一个数据统计问题 一个数据集中,包含"月份","手机号码"等字段.数据中包含多个月,且每个月有些手机号码会重复出现.现在想在原数据集增加一个字段"当月重复出现次数",等于[每条记录中手机号码在当月出现次数].请问在R中如何实现?谢谢! 解决方案 <项目一>请教一个关于获取post json数据的问题

请教c语言中生成随机数的范围

问题描述 请教c语言中生成随机数的范围 unsigned int i, j; srand((unsigned int)time((time_t *)NULL)); i = (unsigned int) (31329.0 * rand() / (RAND_MAX + 1.0)); j = (unsigned int) (30082.0 * rand() / (RAND_MAX + 1.0)); 请问一下产生的i,j的范围是多少? 解决方案 i的范围:0~31329 j的范围:0~30082 解释:

c语言编程-请教c语言指针字符串问题

问题描述 请教c语言指针字符串问题 #include"stdio.h" #include"string.h" int main(void) { char*str[10]; int i; for(i=0;i<10;i++) gets(str[i]); return 0; } 解决方案 C语言字符串的指针C语言中的指针与字符串C语言字符串.指针和内存问题总结 解决方案二: 字符串指针变量(字符串的首地址) 以字符串形式输出以后为什么会和 字符串指针变量的内容是一样

c语言-关于C语言指针数组的问题

问题描述 关于C语言指针数组的问题 #include int main(){ int all[5]; int *putin(); int *p=putin(); for(int k=0;k<5;k++,p++) printf("%d ",*p); return 0; } int *putin(){ int array[5]; printf("please enter 5 numbers:"); for(int i = 0;i<5;i++){ scanf(

编程c语言-关于C语言编译器的问题

问题描述 关于C语言编译器的问题 为什么在电脑上下载不了VC6,谁知道,请求详细告知,还有这个编译器好不好 解决方案 下载我亲自上传的这套,保证好用http://download.csdn.net/album/detail/639 还有win7安装的说明. 采纳本回答(点我回答右边的采纳按钮),再送你一千多个源代码. 解决方案二: 另外再给一个地址 msdn.itellyou.cn 选择开发工具-visual studio 6.0,下载cd1就可以了. 推荐用迅雷下载 解决方案三: VC6太lo

c语言与c++语言之间的相互转化

问题描述 c语言与c++语言之间的相互转化 struct student*p0 scanf("%s",p0->num) scanf("%s",&p0->name) 解决方案 C++也能兼容C,直接编译看有没有什么语法错误 解决方案二: 对的,C++编译器本来就支持几乎所有C语法 你为何还需要改 C --> C++ #include scanf("%s",p0->num); --> std::cin >&

c语言-C语言递归函数C语言递归函数C语言递归函数

问题描述 C语言递归函数C语言递归函数C语言递归函数 #include<stdio.h> #include<stdlib.h> //用递归函数来计算N的阶乘 double factorial(int n) { double result; if(n<0) { printf("输入错误 "); } else if(n==1 ||n==0) { result=1; } else { result=factorial(n-1)*n; //n=5 5-1=4 4*

java-spring框架下jsp脚本语言confirm脚本语言删除数据库中数据怎么做?

问题描述 spring框架下jsp脚本语言confirm脚本语言删除数据库中数据怎么做? spring框架下jsp脚本语言confirm脚本语言删除数据库中数据怎么做,具体说一说怎么写confirm脚本代码?求大神解答啊 解决方案 你的意思是点删除的时候弹出个确认对话框么?再跳一个Action实现真正的删除工作.还是想用ajax的方式实现无刷新删除-- 解决方案二: $(document).ready(function(){ //为注销用户超链接绑定click事件 $(".logoutid&qu

c语言编程-C语言作业,要求只能用C语言写

问题描述 C语言作业,要求只能用C语言写 第17题,求高手帮忙 解决方案 http://www.doc88.com/p-949523816069.htmlhttp://www.docin.com/p-19120799.htmlhttp://download.csdn.net/download/xiaojiang101/4677990 解决方案二: C语言作业_第二堂c语言作业C语言作业