返回信息流附件(517B) Untitled1.c
这是一条镜像帖。来源:北邮人论坛 / cpp / #32528同步于 2009/12/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
谁要有空帮小弟看看哪里错了
huangzz
2009/12/2镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
for(i=0;a[i]!='#';i++)//这一步永远不会退出的吧
scanf("%c",a[i]); // scanf 的第二个参数应该为 &(a[i]) 或者 (a+i)
如果我没猜错,你的意思是遇到 用户输入#就结束读取是吧。 如果是这样的话,这个for循环就有问题了。经过i++,a[i]实际指向的是一个0, for循环的 判断条件应该是 a[i-1]!='#'
如果改为如下:
for(i=1;a[i-1]!='#';i++)
scanf("%c",&(a[i]));
貌似就可以结束输入读取。。
#include<stdio.h>
#include<stdlib.h>
main()
{
char a[50];
int b[50]={0};
int i,j,k,ch;
printf("gsdgfd :");
char ac='0';
i=0;
while(ac!='#')
{
cin>>ac;
a[i]=ac;
i++;
}
i-=2;
for(j=0;j<=i;j++)
{
ch=a[j]-'a';
if(a[j]>='9'||a[j]<'0')
b[ch]++;
}
printf("该字符串中有:\n");
for(k=0;k<=i;k++)
printf("%d个%c\n",b[a[k]-'a'],a[k]);
system("pause");
return 0;
}
这次好了
ok,这个是揣测lz的意思改出来的结果。。。
#include<stdio.h>
#include<stdlib.h>
main()
{
char a[50];
int b[512]={0};
int i,j,k,ch;
printf("gsdgfd :");
for(i=1;a[i-1]!='#';i++)
scanf("%c",&(a[i]));
printf("finish");
for(j=1;j<i-1;j++)
{
ch=a[j];
if(a[j]>='9'||a[j]<'0')
b[ch]++;
}
printf(" \n");
for(k=0; k< 512; k++) {
if(b[k]!=0){
printf("%d %c\n", b[k], k);
}
}
return 0;
}
呵呵,没有考虑那个ascii的个数多少,直接给赋了个512足够大的值。
可以根据需要具体来定那个数组的大小。
【 在 huangzz 的大作中提到: 】
: 谢了
: 但是为什么是512呢
: 127不就够了吗