导航:首页 > 源码编译 > 算法编程题难题

算法编程题难题

发布时间:2022-06-13 22:11:31

⑴ 关于java算法编程的问题,输入成绩,判断每门课得分的范围是否合理,输入时候用空格分割,

一、题目分析:
要计算每个学生的平均成绩,需要获取如下信息:
1、学生总数;
2、科目数;
3、每个学生每科的成绩。
然后累加每个学生的总分,并计算总成绩。
二、算法设计:
1、输入学生总数;
2、输入科目数;
3、对于每个学生,输入各科成绩,计算总分及平均分,保存平均分值。
4、输出结果。
三、参考代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, m;
float *p;
int i,j;
scanf("%d%d",&n,&m);//输入学生总数n和学科总数m。
p = (float *)malloc(sizeof(float)*n);//申请空间以存储平均分。
for(i = 0; i < n; i ++)
{
p[i] = 0;//初始为0.
for(j = 0; j < m; j ++)//输入每个学生每科成绩。
{
float t;
scanf("%f",&t);
p[i]+=t;//累加获得总分。
}
p[i]/=m;//计算平均分。
}
for(i = 0; i < n; i ++)//输出结果。
printf("%f\n", p[i]);
free(p);//释放内存。
return 0;
}

⑵ ACM 算法超难题目

出题人的表达能力太差,题目叙述得很糟糕,最后两个例子也错了

比较好的叙述是,输入n,输出从0到32中取6项按字典序排序下的第n个组合(从第0个组合0,1,2,3,4,5开始计)


这种谈不上什么难题,只不过是入门级的问题

在给定前k项的(记第k项为m)情况下余下的项共有C(32-m,6-k)种情况,这里C(x,y)表示x取y的组合数,以此编程即可

给你一个例子

#include<stdio.h>
intbinom(intn,intm)
{
inti,c=1;
if(2*m>n)
n=n-m;
for(i=1;i<=m;i++)
c=c*(n+1-i)/i;
returnc;
}
intmain()
{
inti,n;
intA[6]={-1};
while(scanf("%d",&n)!=EOF)
{
n++;
if(n<=0||n>binom(33,6))
{
printf("Invalidinput ");
continue;
}
for(i=1;i<=5;i++)
{
for(A[i]=A[i-1]+1;;A[i]++)
{
intt=binom(32-A[i],6-i);
if(n>t)
n-=t;
else
break;
}
printf("%d,",A[i]);
}
printf("%d ",A[i-1]+n);
}
return0;
}

⑶ C语言编程算法问题

你这个太复杂。简单的思路是:(1)保留A()=1-9数字的英文;(2)保留B()=10-19数字英文;
(3)保留C()={0,0,handred, thousand}。将任意数字分解为个、十、百、千等部分。然后组合为英语数字。

⑷ 收集各类贪心算法(C语言编程)经典题目

举个例子,假如你买东西,老板需要找给你99分钱,他有上面面值分别为25分,10分,5分,1分的硬币(都是假如,不符合实际),他得找你3个25分,2个10分的,4个1分的才为最佳方案!
用贪心算法编写程序实现!
main()
{
int
i,a[5],b[4],c[4];
/*
define
the
type
of
the
money*/
a[1]=25;
a[2]=10;
a[3]=5;
a[4]=1;
printf("please
input
you
money
(fen):\n");
scanf("%d",&b[0]);
for
(i=1;i<=4;i++)
{
b[i]=b[i-1]%a[i];
/*take
n
25
off
and
money
left*/
c[i]=(b[i-1]-b[i])/a[i];
/*
n
*/
printf("%d
is
%d\n",a[i],c[i]);
}
getch();
}

⑸ 关于c和算法的一个编程题!跪求解决

用For……Next第一次1-30➗二,然后判断那些整数,剩下的再➗三......以此类推(因为电不足了,没法解释完,望谅解)

⑹ 两道编程算法题(两图一道),题目如下,可以给出算法思路或者源代码,源代码最好是C语言的

就会个第一题(因为第一题上已经给出了大致思路)

思路:用map容器(它的内部数据结构是一颗红黑树,查找和插入数据速度非常快)
map<int,st>a;//key(int):设置为1~n的数;value(st):设置为key的前驱和后继;

这样一来就可以像链表快速插入数据,又可以像数组随机访问元素(key,就相当于数组的下标)

下面是代码和运行截图;

看代码前建议先了解一下map容器的具体用法;

#include<iostream>

#include<map>

#include<vector>

using namespace std;

struct st{//两个成员变量用来储存前驱和后继

int left;//0

int right;//1

st()

{

left=0;

right=0;

}

};

void input(map<int,st> &a)//输出

{

st t;

int s=0;

map<int,st>::iterator it;//迭代器(指针)

for(it=a.begin();it!=a.end();it++)//循环迭代

{

t=it->second;

if(t.left==0)//左边等于0,说明该数是第一个数

{

s=it->first;//记录key

break;

}

}

t=a[s];

cout<<s<<" ";

while(t.right!=0)//循环找当前数的右边的数(右边的为0,就说明该数是最后一个数)

{

cout<<t.right<<" ";

t=a[t.right];

}

}

int main()

{

st t,t_i,t_x,t_k,s;

map<int,st>a;

map<int,st>::iterator it;

int n,x,p,x_l,x_r;

cin>>n;

for(int i=1;i<=n;i++)//map容器赋初值(i,t)

//i:(key)下标;t:(value)结构体变量

{

a.insert(make_pair(i,t));

}

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

{

cin>>x>>p;

if(p==0)//x的左边插入i

{

t=a[x];

if(t.left==0)//x的左边没有数

{

t_x.left=i;

t_i.right=x;

a[x]=t_x;

a[i]=t_i;

}

else//x的左边有数

{

int x_left;

t_x=a[x];

x_left=t_x.left;

t_k=a[x_left];

t_i.right=x;

t_i.left=t_x.left;

t_k.right=i;

t_x.left=i;

a[x]=t_x;

a[i]=t_i;

a[x_left]=t_k;

}

}

else//x的右边插入i

{

t=a[x];

if(t.right==0)//x的右边没有数

{

t_x.right=i;

t_i.left=x;

a[x]=t_x;

a[i]=t_i;

}

else//x的左边有数

{

int x_right;

t_x=a[x];

x_right=t_x.right;

t_k=a[x_right];

t_i.left=x;

t_i.right=t_x.right;

t_k.left=i;

t_x.right=i;

a[x]=t_x;

a[i]=t_i;

a[x_right]=t_k;

}

}

}

for(it=a.begin();it!=a.end();it++)//循环迭代打印各个数之间的关系

{

cout<<it->first<<" ";

cout<<"左边:";

cout<<it->second.left<<" ";

cout<<"右边:";

cout<<it->second.right<<endl;

}

input(a);//打印序列

return 0;

}

/*

4

1 0

2 1

1 0

2 3 4 1

*/

⑺ 编程:一道有些难度的算法问题................

//穿越沙漠问题
/*
用一辆吉普车穿越1000公里的沙漠。
吉普车的总装油量为500加仑,耗油率为1加仑/公里。
由于沙漠中没有油库,必须先用这辆车在沙漠中建立临时油库。
该吉普车以最少的耗油量穿越沙漠,应在什么地方建油库,以及各处的贮油量。
*/
#include <stdio.h>
#include <iostream>

using namespace std;

void desert()
{
int dis,k,oil,d1;
dis=500;
k=1;
oil=500;
cout<<"No.距起点(公里)储油量"<<endl;
do{
cout<<k<<""<<1000-dis<<""<<oil<<endl;
k=k+1;
d1=dis;
dis=dis+500/(2*k-1);
oil= 500*k;
}while (dis<1000);
cout<<endl;
//原点处储油量
oil=500*(k-1)+(1000-dis)*(2*k-1);
cout<<k<<""<<0<<""<<oil<<endl;
}

int main(int argc,char *argv[])
{
desert();
return 0;
}

⑻ 求助编程算法问题,从1到100共100个整数里取出N个数,怎么取,才能使得所有数两两的差尽量不相等

首先 理论分析:取 1, 2, 4, 7, 11...使得差数列为1, 2, 3, 4...
clear
clc
s=1;
i=1;
j=0;
while (i<100)
a(s)=i;
j=j+1;
i=i+j;
s=s+1;
end
a
用这个命令实现吧,N<=14时 两两作差均不等

⑼ 关于算法编程题(C语言实现)

char *a; //字符串 改为 char a[20];//存放字符串的字符数组
int jie; //方程的解 改为 double jie;
dy = 0; 删去 dy=0;
两处的 for(i=1;i<=z;i++) 都改为 for(i = 0; i < z; i++)
if (a[i] == '==' ) 改为 if (a[i] == '=' )
{z=i; 改为 {dy = i;
a=0;b=0; 删去 a=0;b=0;
fun(a,1,dy,&b,&c); 改为 fun(a, 0, dy - 1, &b, &c);
fun(a,dy,z,&b,&c); 改为 fun(a, dy + 1, z - 1, &b, &c);
jie=(d-b)/(e-c); 改为 jie=((double)(d-b))/(e-c);
printf("%c = %d",zm,jie); 改为 printf("%c = %f",zm,jie);

⑽ 在编程和算法领域,有哪些经典问题

转自知乎 作者:Clyde
排序

排序算法:http://ke..com/view/297739.htm
冒泡排序法:http://ke..com/view/1313793.htm
起泡法:http://ke..com/view/174304.htm
鸡尾酒排序:http://ke..com/view/1981861.htm
桶排序:http://ke..com/view/1784217.htm
计数排序:http://ke..com/view/1209480.htm
归并排序:http://ke..com/view/90797.htm
排序二叉树:http://ke..com/view/922220.html
鸽巢排序:http://ke..com/view/2020276.htm
基数排序:http://ke..com/view/1170573.htm
选择排序法:http://ke..com/view/1575807.htm
希尔排序:http://ke..com/view/178698.htm
堆排序:http://ke..com/view/157305.htm
快速排序算法:http://ke..com/view/19016.htm
插入排序法:http://ke..com/view/1443814.htm
树形选择排序:http://ke..com/view/3108940.html
========================================================
搜索
深度优先搜索:http://ke..com/view/288277.htm
宽度优先搜索:http://ke..com/view/825760.htm
启发式搜索:http://ke..com/view/1237243.htm
蚁群算法:http://ke..com/view/539346.htm
遗传算法:http://ke..com/view/45853.htm
========================================================
计算几何
凸包:http://ke..com/view/707209.html
========================================================
图论
哈夫曼编码:http://ke..com/view/95311.htm
二叉树遍历:http://ke..com/view/549587.html
最短路径:http://ke..com/view/349189.htm
Dijkstra算法:http://ke..com/view/7839.htm
A*算法:http://ke..com/view/7850.htm
SPFA算法:http://ke..com/view/682464.html
Bellman-Ford算法:http://ke..com/view/1481053.htm
floyd-warshall算法:http://ke..com/view/2749461.htm
Dijkstra算法:http://ke..com/view/7839.htm
最小生成树:http://ke..com/view/288214.htm
Prim算法:http://ke..com/view/671819.html
网络流:http://ke..com/view/165435.html
========================================================
动态规划
动态规划:http://ke..com/view/28146.htm
哈密顿图:http://ke..com/view/143350.html
递推:http://ke..com/view/3783120.htm
========================================================
动态规划优化
优先队列:http://ke..com/view/1267829.htm
单调队列:http://ke..com/view/3771451.htm
四边形不等式:http://ke..com/view/1985058.htm
========================================================
其他
随机化算法:http://ke..com/view/1071553.htm
递归:http://ke..com/view/96473.htm
穷举搜索法:http://ke..com/view/1189634.htm
贪心算法:http://ke..com/view/112297.htm
分治法:http://ke..com/view/1583824.htm
迭代法:http://ke..com/view/649495.htm
加密算法:http://ke..com/view/155969.htm
回溯法:http://ke..com/view/45.htm
弦截法:http://ke..com/view/768310.htm
迭代法:http://ke..com/view/649495.htm
背包问题:http://ke..com/view/841810.htm
http://ke..com/view/1731915.htm
八皇后问题:http://ke..com/view/698719.htm
百鸡问题:http://ke..com/view/367996.htm
二分法:http://ke..com/view/75441.htm
kmp算法:http://ke..com/view/659777.html
遗传算法:http://ke..com/view/45853.htm
矩阵乘法:http://www.douban.com/group/topic/12416781/edit
Floyd算法:http://ke..com/view/14495.html
路由算法:http://ke..com/view/2276401.html
ICP算法:http://ke..com/view/1954001.html
约瑟夫环:http://ke..com/view/717633.htm
约瑟夫问题:http://ke..com/view/213217.htm
AVL树:http://ke..com/view/414610.htm
红黑树:http://ke..com/view/133754.htm
退火算法:http://ke..com/view/335371.htm#sub335371
并查集:http://ke..com/view/521705.htm
线段树:http://ke..com/view/670683.htm
左偏树:http://ke..com/view/2918906.htm
Treap:http://ke..com/view/956602.htm
Trie树:http://ke..com/view/1436495.html
RMQ:http://ke..com/view/1536346.htm
LCA :http://ke..com/view/409050.htm
矩阵乘法:http://ke..com/view/2455255.htm
高斯消元:http://ke..com/view/33268.html
银行家算法:http://ke..com/view/93075.htm

阅读全文

与算法编程题难题相关的资料

热点内容
阿里用的什么数据库服务器 浏览:337
玩剑网用哪个攻略app 浏览:76
javamysql数据库操作 浏览:225
眉山参加少儿编程培训 浏览:986
androidaes加密java 浏览:816
蜜字的app叫什么 浏览:544
程序员配乐 浏览:453
做一个解压屋 浏览:619
品牌衣服用什么app 浏览:151
python3链接数据库 浏览:55
教课书英语是什么app 浏览:884
环液式压缩机 浏览:479
android控件事件 浏览:967
云服务器的镜像选择什么 浏览:755
python如何设置cplex 浏览:10
linux的mv命令详解 浏览:359
怎么把安装好的python放在桌面上 浏览:121
mysql退出当前命令 浏览:743
现在还有什么手机好用的app 浏览:326
java字符处理函数 浏览:278