1. 首页 > 科技

求助!一道C语言算法题 背口诀14天精通c语言

求助!一道C语言算法题背口诀14天精通c语言

求助 C语言的一道计算题

不相同,你要注意,在C和C++中1/2结果为0,而不是0.5,因为C默认将其当作整数处理,1/2应该写为1.0/2或者1/2.0或者1.0/2.0,就是说只要将其中一个整形的数写为double型就行了,你试试

一道C语言程序题!求助!

//昨天给过一个了,今天给你吧,采纳一下

#include "stdio.h"

void snakeswitch(int *,int,int,const int,int,int);

int main()

{

int N;

printf("input:");

scanf("%d",&N);

int m=N,n=N;

int *initmatrx=new int[m*n];

snakeswitch(initmatrx,m,n,n,1,0);

printf("snakematrix:\n");

for(int i=0;i<n;i++)

{

for(int j=0;j<m;j++)

printf("%6d",initmatrx[i*n+j]);

printf("\n");

}

delete initmatrx;

return 0;

}

//递归算法.initmatrx[m*n],nn为最外层矩阵宽度,initnum为本次矩阵初始数据,loop为本次矩阵的环>

//数,初始为0

void snakeswitch(int *initmatrx,int m,int n,const int nn,int initnum,int loop)

{

//第一行

for(int j=0;j<n;j++)

initmatrx[loop*nn+loop+j]=initnum+j;

if(m==1)

return;

//最后一列

for(int i=1;i<m;i++)

initmatrx[(loop+i)*nn+loop+n-1]=initmatrx[loop*nn+loop+n-1]+i;

if(n==1)

return;

//最后一行

for(int j=n-2;j>=0;j--)

initmatrx[(loop+m-1)*nn+loop+j]=initmatrx[(loop+m-1)*nn+loop+n-1]+n-1-j;

//第一列

for(int i=m-2;i>=1;i--)

initmatrx[(loop+i)*nn+loop]=initmatrx[(loop+m-1)*nn+loop]+m-1-i;

if(m==2||n==2)

return;

//计算除去外圈后的内矩阵

snakeswitch(initmatrx,m-2,n-2,nn,initnum+2*m+2*n-4,loop+1);

}

求助一道算法题,从1到100产生50个随机整数,找出第十小的数,写程序,用c语言或者java

int num[50];

int i;

int t, a, b;

for(i = 0; i < 50; i++) {

num[i] = i;

} //初始化2113

for(i = 0; i < 51; i++) { //产生526150个随机4102数

a = rand() % 100;

b = rand() % 100;

t = num[a];

num[a] = num[b];

num[b] = t;

}

void bubble(int a[]){ //起泡排序1653

int i,t;

for(i=0;i<50;i++){

if(a[i]<a[i+1])

t=a[i];a[i]=a[i+1];a[i+1]=t;

}

}

//num[9]就是内你要的结容果

求解一道题的算法,c语言。

给你两个思路:

1、从字符串下手

2、从整型的取模、乘法、除法特性下手

 

如果仔细向后还有问题,继续追问。