| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1813 人关注过本帖
标题:[求助](未解决)for语句循环问题
取消只看楼主 加入收藏
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
收藏
 问题点数:0 回复次数:5 
[求助](未解决)for语句循环问题

输入十个数,求出不同相同数的个数,及其个数的多少
#include <iostream.h>

const int N = 10;
void main()
{
struct
{
int num;
int tim;
}R[N];
int i;
int ar[N];
cout << "please input ten numbers : ";
for(i=0; i<N; i++)
cin >> ar[i];

R[0].num = ar[0];
R[0].tim = 1;
int j;
int t = 0;
int m;
for(i=1; i<N; i++)
{
for(j=0; j<=t; j++)
if(R[j].num = ar[i])
R[j].tim ++;
else //错误
{
t ++;
R[t].num = ar[i];
R[t].tim = 1;
m = t;
}
}
for(i=0; i<m; i++)
cout << R[i].num << " " << R[i].tim << endl;
}

这个题目的t是错误的,请指出如何在运行完if后结束

[此贴子已经被作者于2006-9-21 20:22:21编辑过]

搜索更多相关主题的帖子: int 语句 tim num 
2006-09-20 21:02
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
收藏
得分:0 

我的思路是这样的:把数组中的十个数依次与前面的储存在要输出的结构体数组里面,如果前面没有这个数,就是结构体数组的下标加1把这个数储存上,另次数等于1,如果有了,只让这个数出现的次数加1;算法是没有错误的,当然可能有更好的算法。


我为你痴,为你狂!
2006-09-20 22:54
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
收藏
得分:0 

我把题目说清楚些,可能不说的不是很清楚。
输入10个int型数,求出其中互不相同数个个数num,以及此num个数中的每一个数出现的次数!

不知道 人们是不是对我的这一问题不屑一顾 啊,什么的,我想应该不是很困难啊,算法都写出来了,只需要改一下for循环就可以了!


我为你痴,为你狂!
2006-09-21 10:25
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
收藏
得分:0 

的确看的很仔细是的应该该为if(R[j].num == ar[i]) 但是仍然不行,能不能把这个程序你烤下去运行一下,我认为你自己写一个最好。
这道题就是给10个数,找出其中有多少个不同的数,并且计算出同一个数出现了几次。

方法:

数组第一个数储存起来,并把它出现的次数赋值为1,然后把后面的数依次与前面的比较,如果相同数出现的次数就加1,如果第一次出现就把它存储起来,并把出现的次数记为1;

在这主要涉及到循环的问题,如何循环是关键,因为用到的变量太多,我想用goto语句,但不是很好用。


我为你痴,为你狂!
2006-09-21 20:34
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
收藏
得分:0 
这道题应该不是很困难吧,我想还是自己解决好了,说不定又犯了一些傻傻的小问题。唉!

我为你痴,为你狂!
2006-09-21 20:36
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
收藏
得分:0 

还是用数组解决比较好
# include <iostream.h>
void count(int a[])
{
int i,res[10],n=10,s[10],ss[10],ii=0;
for(i=0;i<9;i++)
{
res[i]=0;
if(a[i]==0) continue;
++res[i];
s[ii]=a[i];
for(int j=i+1;j<10;j++)
{
if(a[i]==a[j])
{
++res[i];
a[j]=0;
}
}
ss[ii++]=res[i];
}
if(a[9]!=0)
{
s[ii]=a[9];
ss[ii++]=1;
}
for(i=0;i<ii;i++)
{
cout<<s[i]<<"\t"<<"出现:";
cout<<ss[i]<<"次"<<endl;
}
}
void main()
{
int a[10],i=0;

while(i<10)
cin>>a[i++];
count(a);

}


我为你痴,为你狂!
2006-10-04 20:20
快速回复:[求助](未解决)for语句循环问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059990 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved