鱼C论坛

 找回密码
 立即注册
查看: 2379|回复: 5

C语言基础问题

[复制链接]
发表于 2015-12-29 10:20:59 | 显示全部楼层 |阅读模式
1鱼币
#include<stdio.h>
#include<math.h>
void main()
{
int a[10],i=0,j=0,k=0,t;
char c;
while((c=getchar())!='\n')
{
if(c==' ')
{
++i;
}
else if(c>='0'&&c<='9')
{
        a[j]=c;
    ++j;
}
else
{
++k;
}
}
printf("空白符有%d个\n其他字符有%d个\n数字有%d个\n",i,k,j);
for(t=0;t<j;t++)
printf("%d  ",a[t]);
}

上面是035讲的第三道题,编译时显示没问题,为什么就是运行不了呢?
求指点

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-29 16:06:00 | 显示全部楼层
return 0;
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-29 16:56:06 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int a[10] ,i=0,j=0,k=0,t;
  5.     char c;
  6.     while((c=getchar())!='\n')
  7.     {
  8.         if(c==' ')
  9.         {
  10.             ++i;
  11.         }
  12.         else if(c>='0'&&c<='9')
  13.         {
  14.             a[j]=c;
  15.             ++j;
  16.         }
  17.         else
  18.         {
  19.             ++k;
  20.         }
  21.     }
  22.     printf("空白符有%d个\n其他字符有%d个\n数字有%d个\n",i,k,j);
  23.     for(t=0;t<j;t++)
  24.     {
  25.         printf("%c  ",a[t]);
  26.     }
  27.     return 0;
  28. }
复制代码

修改了 main方法的返回值,还修改了输出a[j]数组的形式,以字符形式输出,因为存入a[j]是0~9的ASCII编码值,以十进制输出会显示48~57之间的数值,并不会显示0~9
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-29 20:44:39 From FishC Mobile | 显示全部楼层
我用的是void main(),不用ruturn的,我刚刚换台电脑试了一下,又可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-1-10 15:23:01 | 显示全部楼层
是不是电脑的环境变量没有设置好
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-4-2 15:40:31 | 显示全部楼层
本帖最后由 !~!~! 于 2016-4-2 18:18 编辑
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. void main()
  4. {
  5.         int a[10], i = 0, j = 0, k = 0, t;
  6.         char c;
  7.         while ((c = getchar()) != '\n')
  8.         {
  9.                 if (c == ' ')
  10.                 {
  11.                         ++i;
  12.                 }
  13.                 else if (c >= '0'&&c <= '9')
  14.                 {
  15.                         a[j] = atoi(&c);
  16.                         ++j;
  17.                 }
  18.                 else
  19.                 {
  20.                         ++k;
  21.                 }
  22.         }
  23.         printf("空白符有%d个\n其他字符有%d个\n数字有%d个\n", i, k, j);
  24.         for (t = 0; t < j; t++)
  25.                 printf("%d  ", a[t]);
  26. }
复制代码
字符转数字
#include<stdlib.h>
a[j] = atoi(&c);
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 04:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表