int n,i,h,m;
char a[10];
scanf("%d",&n);
for
(i=0;i<n;i++)
{
scanf("%s%d%d",&a[i],&h,&m);
if((h<15||h>20)||(m<50||m>70))
printf("%s\n",&a[i]);
}
为什么这个程序里printf也要加&才能运行成功啊
要不然就是scanf不加&才能运行成功
“注意,记住 与 %s 格式 有关的输入输出 比较 特殊,输入输出都要用字符串地址。”
这句话是在一维数组中适用吗?我看了这一题的另一个答案,是用二维数组做的,他最后的printf里直接是a[i]没有加&。
刚开始学,不太懂,麻烦了
“注意,记住 与 %s 格式 有关的输入输出 比较 特殊,输入输出都要用字符串地址。”
这句话是在一维数组中适用吗?我看了这一题的另一个答案,是用二维数组做的,他最后的printf里直接是a[i]没有加&。
刚开始学,不太懂,麻烦了
二维数组,不同于一维数组,例如二维: char a[10][20]; 它可以存放10行20列单个字符,也
可以存10个字符串,每个字符串存19个字符和一个结束符。 语句中 a[i] 就是第i 个字符串的首地址,printf("%s",a[i]); 输出 第 i 个字符串。