别的方法 谁还有?

lijianbin9 2008-11-16 11:06:29
要求输入 1-20中的 任意的10个数字,之后 输入刚才输入的 任何一个 ,,,确定 是第几次输入的数字,,
如:输入了1.6.3.4.5.16.13.19.7.15.
在输入 7的话,,,显示 是第九次输入的。。。。
我的方法,,谁还有别的方法,,,类似的,,别超出太多范围,,谢谢


#include <stdio.h>
main(){
int i, input[10], reinput;
for(i=0 ; i<10 ; i++) {
printf("输入第%d输入的数字 ", i);
scanf("%d",&input[i]);
if(input[i]>20 || input[i]<1 ) {
printf("输入1-20范围的数字 .");
i--;
}
}

printf("输入选择的数字: ");
scanf("%d",&reinput);
for(i=0; i<10 ; i++) {
if(input[i] == reinput)
break;
}
printf("输入的数字为%d , 是第%d输入的.\n",input[i],i+1);
}
...全文
153 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunzerui 2009-05-01
  • 打赏
  • 举报
回复
up
学习了!
cyj626 2008-11-18
  • 打赏
  • 举报
回复
up
deerwin1986 2008-11-18
  • 打赏
  • 举报
回复
呵呵 HASH啊 比较擅长做这种事情哈
cba_v 2008-11-18
  • 打赏
  • 举报
回复
up
太乙 2008-11-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yihan7h 的回复:]
要求输入 1-20中的 任意的10个数字
整形?不能重复?
都满足的话,1楼hqin6的更佳……
若不满足的话,hqin6的就不行了......
[/Quote]

行,我再改改,和lz的一模一样!



#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main()
{
int a[20];
int i;
int findnum;
memset(a,-1,sizeof(a));
for(i=0;i<10;i++)
{
int m;
printf("输入第%d输入的数字 ", i);
scanf("%d",&m);
if(m>20 || m <1 ) {
printf("输入1-20范围的数字 .");
i--;
continue;
}
if(a[m]==-1)a[m] = i;
}
printf("输入选择的数字: ");

scanf("%d",&findnum);
printf("%d",a[findnum]);
return 0;
}


yihan7h 2008-11-17
  • 打赏
  • 举报
回复
要求输入 1-20中的 任意的10个数字
整形?不能重复?
都满足的话,1楼hqin6的更佳……
若不满足的话,hqin6的就不行了......
lijianbin9 2008-11-17
  • 打赏
  • 举报
回复
up----
lann64 2008-11-17
  • 打赏
  • 举报
回复
#include <iostream>
#include <map>

using namespace std;

int main()
{
multimap<int,int> m;
int searchnum;
typedef multimap<int,int>::size_type sz_type;

for(int i=1;i<11;i++)
{
int num;
cout<<"输入第"<<i<<"次输入的数字:";
cin>>num;
if (num>20 || num <1 )
{
cout<<"输入1-20范围的数字。" <<endl;
i--;
continue;
}
m.insert(make_pair(num,i));
}

cout<<"输入选择的数字: ";
cin>>searchnum;

sz_type entries=m.count(searchnum);
if (entries)
cout<<"数字"<<searchnum<<"是第 ";
multimap<int,int>::iterator iter=m.find(searchnum);
for(sz_type cnt=0;cnt!=entries;++cnt,++iter)
cout<<iter->second<<" ";
if (entries)
cout<<"次输入的。"<<endl;
else
cout<<"没有输入过数字 "<<searchnum<<endl;

return 0;

}
hefeng1000 2008-11-17
  • 打赏
  • 举报
回复
UP
lijianbin9 2008-11-17
  • 打赏
  • 举报
回复
还有什么 方法,,
Donald_Duck 2008-11-17
  • 打赏
  • 举报
回复
up
太乙 2008-11-16
  • 打赏
  • 举报
回复
我没加上什么越界的检查等~lz看着加上就行了,不是难事儿吧??
lonelywinter340 2008-11-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hqin6 的回复:]
C/C++ code#include<stdlib.h>
#include<stdio.h>
int main()
{
int a[20];
int i;
int findnum;
for(i=0;i<10;i++)
{
int m;
scanf("%d",&m);
a[m] = i;
}
scanf("%d",&findnum);
printf("%d",a[findnum]);
return 0;
}
[/Quote]

楼上正解,其实用的是Hash table的思想
太乙 2008-11-16
  • 打赏
  • 举报
回复
#include<stdlib.h>
#include<stdio.h>
int main()
{
int a[20];
int i;
int findnum;
for(i=0;i<10;i++)
{
int m;
scanf("%d",&m);
a[m] = i;
}
scanf("%d",&findnum);
printf("%d",a[findnum]);
return 0;
}
内容概要:本文针对交直流混合数据中心园区的能源供应与算力资源协同问题,提出了一种多源-算力协同供电协调规划方法。该方法深度融合电力系统与信息计算系统,综合考虑光伏、风电、市电等多种能源形式与算力负载的时空耦合特性,通过构建多目标优化模型实现能源供给与算力需求的动态匹配与联合优化。研究设计了兼顾经济性、能效性与供电可靠性的综合评价体系,并采用Matlab进行建模仿真,对不同运行场景下的规划方案进行了对比分析,有效验证了所提方法在降低综合运营成本、提升能源利用效率和增强系统韧性的优越性能。; 适合人群:具备电力系统、能源管理、计算机系统或自动化等相关专业背景,从事数据中心、综合能源系统(IES)、新能源优化、算力网络等交叉领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为交直流混合架构的数据中心园区提供科学合理的多能协同供电与算力资源联合规划方案;②实现算力任务调度与多源供电策略的深度协调优化,最大化可再生能源消纳,提升整体能源效率与系统运行可靠性;③为其他涉及“能源-信息”深度融合的综合能源系统优化调度研究提供理论参考与Matlab代码实现基础。; 阅读建议:本文是典型的跨学科交叉研究,阅读时应重点关注其多目标优化建模的构建逻辑、多源-算力协同机制的设计原理以及目标函数与约束条件的数学表达。建议结合所提供的Matlab代码,动手复现仿真过程,深入理解模型求解细节,从而更好地掌握该方法的核心思想,并尝试将其迁移应用于自身相关的优化问题研究中。

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧