c语言帝来

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:04:22
保存10位同学的姓名和成绩
#include <stdio.h>
void main()
{
char name[10][80];
int i,grade[10];
for(i=0;i<10;i++)
{
gets( name[i] );
scanf("%d", &grade[i]);
}

}
不懂之处:
1.开头为什么要[80]?这么多?
2.gets 和scanf不都是输入吗? 到底怎么保存的??

数组开到80也是以防万一吗。测试数据如果BT,过于长,开小了,岂不是会发生错误。所以要开这么多么,而且开80也不会超过内存限制,最大能开六千万呢。不必担心,你这数组才800。

gets()是从屏幕读取一个字符串,仅仅读取字符串,虽然比scanf可能会效果好一些,但是毕竟用处不大。还有getchar()也是一样,读取单字符,我们在读char时常会用到它们。
scanf用途就广了。整形,浮点型,无符号型,字符串,单字符等等都可以实现从屏幕读入的功能。要注意的一点是,只有读入字符串时,这样写:
scanf ("%s",string);变量名前面不添加地址符 & 。

1.C语言中定义的数组是静态的,即数组的长度是编写程序时定下的,不能在程序的运行过程当中发生变化。 所以要定义长度组后长的数组以避免用户的输入溢出数组边界。

2.gets()和scanf()函数有很大的不同啊

(1)gets()的功能单一,只能用于输入字符串
scanf()不仅能用于字符串的输入,还能处理字
符、数字以及字符串。
(2)另一个重要的不同就是scanf()用%s输入的字符
串中不能包含空格(scanf()遇到空格就结束读
取),而gets就不同了,它允许用户的输入中
含有空格。

希望对你有帮助

名字长啊 例如wangchenggong
gets是得到字符串 用它简单 scanf得到什么都行但用起来不如gets 所以用了gets

gets 输入 一串字符串 回车键结束 scanf遇见空格就直接结束输入了 懂不