标签:
题目来源:
建立长度为n的单链表A和长度为m的单链表B,n>0,m>0。编程实现将B表链接在A表的尾端,形成一个单链表A。数据类型指定为字符型。
第一行为A表的长度n; 第二行为A表中的数据元素 第三行为B表的长度m; 第四行为B表中的数据元素。
输出为链接好后的A表中的所有数据元素。
1
2
3
4
5
|
4
A B C D
6
1 2 3 4 5 6
|
1
|
A B C D 1 2 3 4 5 6
|
#include<stdio.h>
int main()
{
int n,m,i;
char a[100],b[100];
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
scanf("%s",&a[i]); //%s,用%c的话会在输入时出现问题
}
scanf("%d",&m);
getchar();
for(i=0;i<m;i++)
{
scanf("%s",&b[i]); //用%s
}
for(i=0;i<n;i++)
printf("%c ",a[i]);
for(i=0;i<m;i++)
{
if(i!=m-1)
printf("%c ",b[i]);
else
printf("%c",b[i]);
}
return 0;
}
关于%c和%s:
scanf函数 字符串输入问题
c)书上有这样一段代码
char c[];,不需要‘%s",c);么;
和
scanf("
输入的时候把字符串带如字符数组;
两者之间什么区别;%s";&‘,带入时才不需要',&c);?
是不是只有字符串比较特殊;%s"&'?
scanf("
scanf("char c[81],至多接收80个字符; /,只能接收一个字符;/,前面没有&。
2 输出字符串;
scanf("c定义为字符数组,格式符用%d; /
scanf(",格式符用%c,c)分两种情况来说明。
char c;,前面有&;/;%c",&c);%s"c定义为字符变量。
1 输入字符
这是不加&. scanf在用%s时。
2,不用&,再加&就错误了1,也错了,那么这个字符必须加&,才能放入相应字符变量的地址里,因为字符数组的名字本身就代表是这个数组的首地址,是输入一个字符.用%c时,已经是地址了,是指输入一个字符串
第一个问题:
scanf 函数后一个参数实际上是地址,
而数组名的真正含义就是一个地址,所以不用加&取地址运算符。
第二个问题:
scanf("%s",&c); //表示你要取C的地址,而c如果是一个变量,就可以取出地址,总之你要明白scanf后一个参数实际上是地址,c 和&c的区别在于,c本身是不是地址。
scanf函数需要的是一个地址,如果是一个变量如a,&a代表a的地址,现在你定义的是一个字符数组,字符数组名本身代表了该字符数组的首地址,也就是第一个元素的地址,所以不需要再去&.
另一个地方关于这个问题的解答:
标签:
原文地址:http://www.cnblogs.com/try-my-best/p/4523661.html