鱼C论坛

 找回密码
 立即注册
查看: 1484|回复: 9

C语言 数组 和 函数

[复制链接]
发表于 2015-11-11 09:29:41 | 显示全部楼层 |阅读模式
25鱼币
1.数组 问题:如何输入n个整数,使按下回车结束。
# include <stdio.h>
main()
{
        int a[100],b=0,c;
        while (a[b] != '\n')
        {
                scanf("%d",&a[b]);
                b++;
        }
        for(c=0;c<b;c++)
        {
                printf("%d",a[c]);
        }
}

我发现我这样写 回车根本停止不了,是因为‘\n’是字符,我定义是整形原因吗?

2.函数问题:可以返回多个值 给 main函数吗?
比如统计一个字符串 空格 字母 其他的个数,结果在main 函数输出
# include <stdio.h>
# include <string.h>
int str(char a[100])
{
        int i,eng=0,num=0,blank=0,other=0;
        for(i=0;i<strlen(a);i++)
        {
                if((a[i] >= 'A' && a[i] <= 'Z') || (a[i]>='a')&&(a[i]<='z'))
                   eng++;
        else if(a[i] == ' ')
           blank++;
        else if(a[i]>='0' && a[i]<= '9')
           num++;
        else
           other++;
        }
//        return  这里我不知道该如何返回值,好像这里只能返回一个,但结果有4个 
}
int main()
{
        char str1[100];
        gets(str1);
        printf("%d",str(str1));
//在这里 接受统计出的值,并打印,有4个值,该如何接受        
}

最佳答案

查看完整内容

1.数组 问题:如何输入n个整数,使按下回车结束。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-11 09:29:42 | 显示全部楼层

1.数组 问题:如何输入n个整数,使按下回车结束。
//百度上抄的
#include<stdio.h>
int main()
{
    int i,n=0,a[999]; 
    for(i=0;;i++)
    {
        scanf("%d",&a[i]);
        n++;        //计算输入个数
        if(getchar()=='\n')break; //遇回车中断
    }
    for(i=0;i<n;i++)printf("%d ",a[i]);
    printf("\n");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-11 15:11:59 From FishC Mobile | 显示全部楼层
大一狗x轻喷,第一个静态数组我还不知道有这种判定方法……那个'\n'不是判定不为真时吗……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-11 15:14:07 From FishC Mobile | 显示全部楼层
应该while(scanf("%s",&ch)!='\n')什么的吧……完了同样求助了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-11-11 18:00:56 | 显示全部楼层
梦神的日记 发表于 2015-11-11 15:14
应该while(scanf("%s",&ch)!='\n')什么的吧……完了同样求助了

这是什么呀,感觉看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-11 19:55:11 | 显示全部楼层
首先第一题,有如下问题:
1、像你说的,定义的数组为整形,整形变量是不能读出字符'\n'的;
2、 应该先输入字符,再判断是否为回车'\n'。
3、建议初始化数组,如:a[100] = {0};
如下代码,仅供参考:
#include <stdio.h>

int main()
{
        char a[100] = {0};
        int b=0,c=0;

        while(1)
        {
                scanf("%c",&a[b]);

                if(a[b] != '\n')
                {
                        b++;
                }
                else
                {
                        break;
                }
        }
        
        for(c=0; c<b; c++)
        {
                printf("%c",a[c]);
        }


        return 0;
}

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
独一无② + 5 + 5 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-11 19:57:15 | 显示全部楼层
第二个问题, 声明4个全局变量即可!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-11 20:17:09 | 显示全部楼层
第二题,可以将你想要的值放进数组里,然后返回一个数组,再将数组输出即可

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
独一无② + 5 + 5 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-11-11 21:34:34 | 显示全部楼层
~风介~ 发表于 2015-11-11 19:54
1.数组 问题:如何输入n个整数,使按下回车结束。

谢谢,太感谢了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-13 20:49:09 | 显示全部楼层
O O 学到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 14:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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