c++,我写了一个程序,不知道为什么输出值永远都是0,2。各位大大,求解答啊~~~
#include<cstdlib>#include<iostream>usingnamespacestd;intmain(){chara[100];intb[26]={0...
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
char a[100];
int b[26]={0};
int i,j,t,c,l;
int max,min;
printf("Please input a word\n");
scanf("%s",a);
l=strlen(a);
for(c=0;c<l;c++)
switch(a[c])
{
case 'a':b[0]++;break;
case 'b':b[1]++;break;
case 'c':b[2]++;break;
case 'd':b[3]++;break;
case 'e':b[4]++;break;
case 'f':b[5]++;break;
case 'g':b[6]++;break;
case 'h':b[7]++;break;
case 'i':b[8]++;break;
case 'j':b[9]++;break;
case 'k':b[10]++;break;
case 'l':b[11]++;break;
case 'm':b[12]++;break;
case 'n':b[13]++;break;
case 'o':b[14]++;break;
case 'p':b[15]++;break;
case 'q':b[16]++;break;
case 'r':b[17]++;break;
case 's':b[18]++;break;
case 't':b[19]++;break;
case 'u':b[20]++;break;
case 'v':b[21]++;break;
case 'w':b[22]++;break;
case 'x':b[23]++;break;
case 'y':b[24]++;break;
case 'z':b[25]++;break;
}
for(i=0;i<26;i++){
for(j=1;j<26;j++)
if(b[i]>b[j])
{
b[i]=t;
b[i]=b[j];
t=b[j];
}}
max==b[25];
min==b[0];
printf("%d\n",max);
printf("%d\n",min);
system("PAUSE");
return 0;
} 展开
#include <iostream>
using namespace std;
int main()
{
char a[100];
int b[26]={0};
int i,j,t,c,l;
int max,min;
printf("Please input a word\n");
scanf("%s",a);
l=strlen(a);
for(c=0;c<l;c++)
switch(a[c])
{
case 'a':b[0]++;break;
case 'b':b[1]++;break;
case 'c':b[2]++;break;
case 'd':b[3]++;break;
case 'e':b[4]++;break;
case 'f':b[5]++;break;
case 'g':b[6]++;break;
case 'h':b[7]++;break;
case 'i':b[8]++;break;
case 'j':b[9]++;break;
case 'k':b[10]++;break;
case 'l':b[11]++;break;
case 'm':b[12]++;break;
case 'n':b[13]++;break;
case 'o':b[14]++;break;
case 'p':b[15]++;break;
case 'q':b[16]++;break;
case 'r':b[17]++;break;
case 's':b[18]++;break;
case 't':b[19]++;break;
case 'u':b[20]++;break;
case 'v':b[21]++;break;
case 'w':b[22]++;break;
case 'x':b[23]++;break;
case 'y':b[24]++;break;
case 'z':b[25]++;break;
}
for(i=0;i<26;i++){
for(j=1;j<26;j++)
if(b[i]>b[j])
{
b[i]=t;
b[i]=b[j];
t=b[j];
}}
max==b[25];
min==b[0];
printf("%d\n",max);
printf("%d\n",min);
system("PAUSE");
return 0;
} 展开
4个回答
展开全部
if(b[i]>b[j])
{
b[i]=t;
b[i]=b[j];
t=b[j];
}
这个是我见过的最经典排序交换,好好看看!!!
max==b[25];
min==b[0];
这个是赋值吗
还有 同意一楼的回答 >O_O<
{
b[i]=t;
b[i]=b[j];
t=b[j];
}
这个是我见过的最经典排序交换,好好看看!!!
max==b[25];
min==b[0];
这个是赋值吗
还有 同意一楼的回答 >O_O<
追问
饿。。。
求原谅啊~~~咱是新手~~~
是不是把他改成{
t=b[i]
b[i]=b[j];
b[j]=t;
}
max=b[25];
min=b[0];
啊。。
追答
那些case 我不知道 你是用什么样的耐心写下来的 写得多 效率还不高
改成
if (islower(a[c]) b[a[c] - 'a']++; // 这样多简洁
要求输出这个单词出现次数最多的字母的出现次数,和出现最少的字母的出现次数
后面求max 和min的时候 不要用排序 没有必要
max = min = b[0];
for( char ic = 1; ic b[ic] ? max : b[ic];
min = min < b[ic] ? min : b[ic];
}
展开全部
你想干什么?这程序错的一塌糊涂,o(>﹏<)o!
追问
就是输入1个单词,都是小写字母,要求输出这个单词出现次数最多的字母的出现次数,和出现最少的字母的出现次数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf("%s",a); a前面加&
追问
a是一个数组名啊,数组名不就代表了他的地址吗?。。
追答
哈哈,我错了,没细看 -_-!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-10-05
展开全部
char a[100];
int b[26]={0};
int i,j,t,c,l;
int max,min;
printf("Please input a word\n");
scanf("%s",a);
l=strlen(a);
for(c=0;c<l;c++)
b[a[c]-97]++;
for(i=0;i<26;i++)
for(j=i+1;j<26;j++)
if(b[i]>b[j])
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
max=b[25];
min=b[0];
printf("%d\n",max);
printf("%d\n",min);
int b[26]={0};
int i,j,t,c,l;
int max,min;
printf("Please input a word\n");
scanf("%s",a);
l=strlen(a);
for(c=0;c<l;c++)
b[a[c]-97]++;
for(i=0;i<26;i++)
for(j=i+1;j<26;j++)
if(b[i]>b[j])
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
max=b[25];
min=b[0];
printf("%d\n",max);
printf("%d\n",min);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询