|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 为什么我的程序的循环次数要比输入的数字少一次
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
570
人关注过本帖
标题:
为什么我的程序的循环次数要比输入的数字少一次
只看楼主
加入收藏
刷题c
等 级:
新手上路
帖 子:12
专家分:7
注 册:2015-11-13
结帖率:
66.67%
楼主
收藏
已结贴
√
问题点数:10 回复次数:9
为什么我的程序的循环次数要比输入的数字少一次
#include <stdio.h>
#include <string.h>
int main()
{
char a[1111][1111];
int i,j,k,n;
scanf("%d",&n);
int sum=0;
for(i=0;i<n;i++)
{
gets(a[i]);
j=strlen(a[i]);
sum=sum+j;
}
printf("%d",sum);
return 0;
}
我输入数字5却只循环4次
搜索更多相关主题的帖子:
include
2015-11-30 15:02
举报帖子
使用道具
赠送鲜花
wp231957
来 自:神界
等 级:
贵宾
威 望:
423
帖 子:13688
专家分:53332
注 册:2012-10-18
第
2
楼
收藏
得分:0
scanf(
"
%d
"
,&n); fflush(stdin);
加一句代码 看看
DO IT YOURSELF !
2015-11-30 15:23
举报帖子
使用道具
赠送鲜花
rjsp
等 级:
版主
威 望:
528
帖 子:9025
专家分:54030
注 册:2011-1-18
第
3
楼
收藏
得分:4
以下是引用
wp231957
在2015-11-30 15:23:14的发言:
scanf("%d",&n);
fflush(stdin);
加一句代码 看看
其实 fflush(stdin),从来都是未定义行为。
曾经有人提议将之加入到C标准中,但后来页不了了之
2015-11-30 16:03
举报帖子
使用道具
赠送鲜花
wp231957
来 自:神界
等 级:
贵宾
威 望:
423
帖 子:13688
专家分:53332
注 册:2012-10-18
第
4
楼
收藏
得分:4
回复 3楼 rjsp
那应该怎么消那个回车呢
getchar()
???
DO IT YOURSELF !
2015-11-30 16:05
举报帖子
使用道具
赠送鲜花
rjsp
等 级:
版主
威 望:
528
帖 子:9025
专家分:54030
注 册:2011-1-18
第
5
楼
收藏
得分:0
以下是引用
wp231957
在2015-11-30 16:05:23的发言:
那应该怎么消那个回车呢
getchar()
???
取决于楼主要不要数字那行后面的字符串
假如不要,我也没有什么好办法,但我常用
scanf( "%*[^\n]" );
scanf( "%*c" );
这两句。(注意,这两句不能写在一起scanf( "%*[^\n]%*c" ),因为第一句可能失败)
2015-11-30 16:29
举报帖子
使用道具
赠送鲜花
刷题c
等 级:
新手上路
帖 子:12
专家分:7
注 册:2015-11-13
第
6
楼
收藏
得分:0
回复 5楼 rjsp
那为什么循环会少一次呢 是因为gets与语句吗?
你指的数字后面的字符串是那个?
2015-12-01 12:54
举报帖子
使用道具
赠送鲜花
rjsp
等 级:
版主
威 望:
528
帖 子:9025
专家分:54030
注 册:2011-1-18
第
7
楼
收藏
得分:0
以下是引用
刷题c
在2015-12-1 12:54:38的发言:
那为什么循环会少一次呢 是因为gets与语句吗?
你指的数字后面的字符串是那个?
指的是
2 abc
def
中的 abc
2015-12-01 13:05
举报帖子
使用道具
赠送鲜花
刷题c
等 级:
新手上路
帖 子:12
专家分:7
注 册:2015-11-13
第
8
楼
收藏
得分:0
回复 7楼 rjsp
想要的 你的意思是说 输入数字后不能用 回车 来隔吗 要用空格是吗
把那个gets(a) 换成scanf("%s",a) 就没有那个问题了
这是为什么啊
2015-12-01 13:53
举报帖子
使用道具
赠送鲜花
刷题c
等 级:
新手上路
帖 子:12
专家分:7
注 册:2015-11-13
第
9
楼
收藏
得分:0
回复 7楼 rjsp
scanf( "%*[^\n]" );
scanf( "%*c" );
这两个是两种输入字符串的方法吗?
2015-12-01 13:55
举报帖子
使用道具
赠送鲜花
孤狼A组
等 级:
论坛游侠
威 望:
2
帖 子:73
专家分:121
注 册:2015-9-8
第
10
楼
收藏
得分:4
#include <stdio.h>
#include <string.h>
int main()
{
char a[10][10];
int i,j,k,n;
int sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",&a[i]);//改成
scanf输入就可以,具体原因可能是和第四次输入后的那个回车有关
j=strlen(a[i]);
sum=sum+j;
}
printf("%d\n",sum);
return 0;
}
2015-12-01 21:35
举报帖子
使用道具
赠送鲜花
10
1/1页
1
快速回复:
为什么我的程序的循环次数要比输入的数字少一次
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017068 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved