C语言练习:输出最长的名字

一个班级中有 n个学生,每个学生有一个名字。班主任希望知道学生中名字最长(名字中的一个空格长度计为 1)的学生是谁。

提示 1:带有空格的输入,可以使用 scanf 读入时可以逐字符读入,第一个参数使用 “%c”,每行读入以 \n 字符被读入来判断结束。对于是否还有新的行没有读入的情况,可以用:

while (scanf(/* 这部分省略*/) != EOF) {}

的方式进行。

提示 2:由于 scanf 之后使用 “%c” 格式,读入 n 之后的 \n 一定要在之前进行处理。初始化代码中已经给出。

输入格式

你的程序接受的输入的第一行是一个整数 n,表示学生的总数。之后的 n行,每行会接受一个学生的名字(可能有空格)。学生的名字不超过 100 个字符。

输出格式

输出 n位学生中最长的学生名字(如果有多个名字一样长的学生,输出第一个)。

一开始我写代码是这样的:

//无法输出期望答案!!!!!!!!!!!
#include <stdio.h>
#include <string.h>
int main() {int n;int i = 0;int k = 0;int max = 0;char a;char max_name[101] = "";scanf("%d\n", &n);char name[n][101];while (scanf("%c", &name[k][i++]) != EOF) {if (name[k][i - 1] == '\n') {if (strlen(name[k]) > strlen(max_name)) {strncpy(max_name,name[k], i - 1);}if (k < n ) {k++;i = 0;                 }else {break;}}}printf("%s\n", max_name);return 0;
}

输出:

也不知道错在哪里。

=分割线=
参考代码后把每一行的循环放到了外面,取消了char的二维数组就可以了。
参考代码

#include <stdio.h>
#include<string.h>
int main() {int n;char m;int i,  j;scanf("%d\n", &n);char max[100] = " ";for ( i = 0; i < n; i++) {char name[100] = " ";while (scanf("%c", &m) != EOF) {if (m!='\n'){name[j++] = m ;}else{j = 0;if (strlen(name) > strlen(max))strcpy(max,name);break;} }}printf("%s\n",max);return 0;
}

输出:

希望有大佬能帮忙看一下第一段的代码中问题具体所在

C语言练习:输出最长的名字相关推荐

  1. C语言实现输出最长的名字

    题目 一个班级中有n个学生,每个学生有一个名字.班主任希望知道学生中名字最长(名字中的一个空格长度计为 1)的学生是谁. 输入格式 你的程序接受的输入的第一行是一个整数n,表示学生的总数.之后的n行, ...

  2. c语言题目输出最长字符串(最长单词),字符串长度

    题目描述:输入一段字符(由空格.字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输出最长字符串内容,如果有多个输出最先出现的那个字符串.以stop作为最后输入的字符 ...

  3. c语言编程输出我的学号名字,如何用C语言编写自己的姓名和学号

    可以参考下面的代码: #include #include int main(void) { FILE *fp=fopen("data.txt","r"); if ...

  4. 最长的名字 /比较最长的字符串并输出

    最长的名字 有 N个同学,每个同学的名字长度都不一样.小蒜想知道班上谁的名字最长,你能不能帮他找出来呢? 输入格式 输入第一行为同学数 N(0 \leq N \leq 1000≤N≤100). 接下来 ...

  5. C语言-输出最长单词

    问题 : 输出最长单词 题目描述 输入一行字符(长度不超过500),将此字符串中最长的单词输出 输入 简单英文句子(长度不超过500),只包含字母和空格,单词之间用空格分隔,没有缩写形式和其它特殊形式 ...

  6. c 语言输出字符用什么作用是什么,C语言中输出字符串用什么符号

    C语言中输出字符串用双引号. (推荐教程:c语言教程) 详细解读: 在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是: puts():输出字符串并自动换行,该函数只能输出字符串. ...

  7. c语言直接输出PDF,C语言格式化输出总结.pdf

    C C 语言格式化输出总结语言格式化输出总结 一 一 printf printf 函数函数9 S4 Y N4 r S V0 I w printf 函数是格式化输出函数 一般用于向标准输出设备按规定格式 ...

  8. c++之头文件基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数

    c++之头文件,基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数 文章目录 c++之头文件,基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数 前言 一.头文件,基本输出,输入 ...

  9. C语言编译能否被七整除,求c语言高手输出1000以内既能被5整除又能被7整除

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求c语言高手 输出1000以内既能被5整除又能被7整除的数,要求五个数回答:int main(){int num =0;for(in ...

最新文章

  1. 筛指定区间的素数[区间偏移二次筛法]
  2. android string.xml前后加空格的技巧
  3. Python数据分析与挖掘
  4. spring boot + vue + element-ui全栈开发入门——项目部署
  5. 多线程中使用Java集合类
  6. python星号*在函数中、传参时的含义
  7. Flink算子(Filter、KeyBy、Reduce和Aggregate)
  8. SolarWinds 升级 APM Suite,简化应用程序和基础架构管理!
  9. ArcGIS制图表达Representation实战篇3-控制点
  10. 搭建appium的android环境
  11. qt动画实现抖动和下坠
  12. MySQL驱动jar包的下载--保姆教程
  13. java后端开发(二):web开发历史解读
  14. python输入如何加单位_Python中的单位转换
  15. python实现批量改名
  16. UEFI之PEI阶段
  17. python包编译过程中出现: /usr/local/cuda-9.0/nvcc: No such file or directory问题的简单解决办法
  18. python字符映射表和字符替换
  19. 云南省自然保护区分布及功能区划
  20. 微信小程序 php配置,微信小程序 教程之小程序配置

热门文章

  1. git 重新追踪索引_索引追踪差距
  2. 计算机发展历史的感想
  3. 五方法破解Linux(CentOS7.4)系统的root密码
  4. 如何投影一个纹理 (翻译:心蓝 潘李亮)
  5. java字符串tirm方法模拟去除首尾空白字符
  6. 行车记录仪全国产化电子元件推荐方案
  7. 亚洲首台BMD8K切换台开箱
  8. 萤石开放平台的二次开发——摄像头取流至微博直播平台
  9. Lambda 表达式Demoo
  10. UE中渲染自发光通道的折衷方案