|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
例如:一个二维字符数组 char ch[n][1000]
为什么有时候我做题用gets(ch[i])时可以在编译器上运行但提交oj却显示错误,而用scanf("%s",&ch[i])就可以提交通过。
下面是具体的题目描述和通过代码。
题目描述
给定一系列不同长度的字符串,找出最长的一串后输出
输入 :
输入为多组测试数据。
第一行为一个正整数n(n<=10),表示字符串的个数。
接下来有n行,每行一个字符串,字符串仅包含英文字母,长度不超过50。
输出 :
输出最长的字符串。
样例输入
3
a
bc
def
样例输出y
def
- #include <stdio.h>
- #include <iostream>
- using namespace std;
- #include <math.h>#include <string.h>
- int x,m,n,i,j,k,min,s,sum,count=0,cle=0,cnum=0,cblank=0,coth=0;
- char max;
- while(scanf("%d",&n)!=EOF)
- {
- getchar();
- char ch[n][1000];
- int ca[n],ci[n],ce[n],co[n],cu[n],sy[n],f[n],max,maxpos;
- for(i=0;i<n;i++)
- {
- scanf("%s",&ch[i]);
- sy[i]=strlen(ch[i]);
- }
- max=sy[0];
- maxpos=0;
- for(i=1;i<n;i++)
- {
- if(sy[i]>max)
- {
- max=sy[i];
- maxpos=i;
- }
-
- }
- puts(ch[maxpos]);
- }
- return 0;
- }
复制代码
我记得gets是可以接收空格的
而scanf遇到空格就截断了
|
|