| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 14468 人关注过本帖
标题:怎么进行多组数据的输入
只看楼主 加入收藏
不同认为
Rank: 1
等 级:新手上路
帖 子:93
专家分:3
注 册:2015-11-25
结帖率:57.14%
收藏
已结贴  问题点数:10 回复次数:13 
怎么进行多组数据的输入
图片附件: 游客没有浏览图片的权限,请 登录注册
#include<stdio.h>
int main()
{
  char a[3],t;
  int i,j;
  for(i=0;i<3;i++)
     scanf("%c",&a[i]);
    for(j=0;j<2;j++)
    for(i=0;i<2-j;i++)
    if(a[i]>a[i+1])
    {
        t=a[i];
        a[i]=a[i+1];
        a[i+1]=t;
    }
for(i=0;i<3;i++)
   printf("%c ",a[i]);
return 0;
}这是我的代码 可是只能一组一组输 如何实现多组输入
2015-12-19 14:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
一次读入3个字符的方法是scanf("%3c", a),这里a[0]、a[1]、a[2]就是那3个字符。要都多少行,就循环多少次。

授人以渔,不授人以鱼。
2015-12-19 21:10
winnie96
Rank: 2
等 级:论坛游民
帖 子:51
专家分:86
注 册:2015-12-14
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    char t, a[3][3];
    int i,j;
    printf("输入数据");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            scanf("%c",&a[i][j]);
        }
    }
    for(i=0;i<3;i++)

        for(j=0;j<3;j++)
        {
            if(a[i][j]<a[i][j+1])
            {
                t=a[i][j];
                a[i][j]=a[i][j+1];
                a[i][j+1]=t;
            }
        }
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("%c ",a[i][j]);
        }
        printf("\n");
    }

    return 0;
}
2015-12-19 21:50
不同认为
Rank: 1
等 级:新手上路
帖 子:93
专家分:3
注 册:2015-11-25
收藏
得分:0 
回复 2楼 TonyDeng
这什么意思 可是怎么控制它输到哪行就结束  比如输到第5行结束
2015-12-19 22:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你题目都没说约定如何结束,我怎么知道。

授人以渔,不授人以鱼。
2015-12-19 22:27
不同认为
Rank: 1
等 级:新手上路
帖 子:93
专家分:3
注 册:2015-11-25
收藏
得分:0 
回复 5楼 TonyDeng
#include<stdio.h>
int main()
{
  char a[3],t;
  int i,j;
  while(scanf("%c%c%c",&a[0],&a[1],&a[2])!=EOF)
  {
     for(j=0;j<2;j++)
    for(i=0;i<2-j;i++)
    {
    if(a[i]>a[i+1])
    {
        t=a[i];
        a[i]=a[i+1];
        a[i+1]=t;
    }
    }
    getchar();
    for(i=0;i<3;i++)
   printf("%c ",a[i]);
    getchar();
   
  }
return 0;
}这样改还是错了  题目要求的就是一直输入  
2015-12-19 23:31
kehanping
Rank: 2
等 级:论坛游民
威 望:1
帖 子:25
专家分:88
注 册:2015-12-10
收藏
得分:0 
程序总有退出结束的时候,你首先应该搞清楚结束的条件!
2015-12-19 23:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用不同认为在2015-12-19 23:31:16的发言:

#include<stdio.h>
int main()
{
  char a[3],t;
  int i,j;
  while(scanf("%c%c%c",&a[0],&a[1],&a[2])!=EOF)
  {
     for(j=0;j<2;j++)
    for(i=0;i<2-j;i++)
    {
    if(a>a)
    {
        t=a;
        a=a;
        a=t;
    }
    }
    getchar();
    for(i=0;i<3;i++)
   printf("%c ",a);
    getchar();
   
  }
return 0;
}这样改还是错了  题目要求的就是一直输入  


你既然要用scanf()返回EOF来结束输入,那么就在输入时让scanf()读到错误标识符,在Windows中,用键入Ctrl+Z(或F6)来输入这个特殊字符。scanf()读到这个字符,就会返回EOF。

注意:虽然EOF的宏值是-1,但并不是可以用输入-1来得到它的,不同的系统有不同的方法制造文件出错,scanf()函数只负责在遇到这种系统约定出错符时统一返回-1。总之,EOF不是一个字符!

授人以渔,不授人以鱼。
2015-12-19 23:39
不同认为
Rank: 1
等 级:新手上路
帖 子:93
专家分:3
注 册:2015-11-25
收藏
得分:0 
回复 8楼 TonyDeng
还有一个关于getchar的问题  是不是如果输入字符之前输入了其他的东西  就要加个getchar  把空格吸收掉
2015-12-20 00:19
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:0 
回复 9楼 不同认为
你说滴对。

好好学习,天天向上!
2015-12-20 00:25
快速回复:怎么进行多组数据的输入
数据加载中...
 
   



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

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