C语言结构体数组赋值问题
将每个结构体数组进行赋值并输出#include"stdio.h"#defineN3structR{chara[1];charb[1];}A[N],B[N];voidmai...
将每个结构体数组进行赋值并输出
#include "stdio.h"
#define N 3
struct R{
char a[1];
char b[1];
}A[N],B[N];
void main(){
int i;
for(i=0;i<N;i++){
printf("A%d\t",i+1);
scanf("%s %s",&(A[i].a),&(A[i].b));
}
for(i=0;i<N;i++){
printf("B%d\t",i+1);
scanf("%s %s",&(B[i].a),&(B[i].b));
}
for(i=0;i<N;i++){
printf("%s,%s\t",(A[i].a),(A[i].b));
}
for(i=0;i<N;i++){
printf("%s,%s\t",(B[i].a),(B[i].b));
}
}
输入:1 a
2 a
3 a
1 s
2 s
3 s
输出:
1a2a3a,a2a3a 2a3a,a2a 3a,a 1s2s3s,s2s3s 2s3s,s3s 3s,s
求各位大师指点 谢谢
目的输出的是1,a 2,a 3,a 1,s 2,s 3,s 展开
#include "stdio.h"
#define N 3
struct R{
char a[1];
char b[1];
}A[N],B[N];
void main(){
int i;
for(i=0;i<N;i++){
printf("A%d\t",i+1);
scanf("%s %s",&(A[i].a),&(A[i].b));
}
for(i=0;i<N;i++){
printf("B%d\t",i+1);
scanf("%s %s",&(B[i].a),&(B[i].b));
}
for(i=0;i<N;i++){
printf("%s,%s\t",(A[i].a),(A[i].b));
}
for(i=0;i<N;i++){
printf("%s,%s\t",(B[i].a),(B[i].b));
}
}
输入:1 a
2 a
3 a
1 s
2 s
3 s
输出:
1a2a3a,a2a3a 2a3a,a2a 3a,a 1s2s3s,s2s3s 2s3s,s3s 3s,s
求各位大师指点 谢谢
目的输出的是1,a 2,a 3,a 1,s 2,s 3,s 展开
2个回答
展开全部
代码里几个问题:
结构体R里,成员变量a和b数组长度都是1,不如直接定义成char a和char b;
把所有scanf和printf里的%s都换成%c;
前面两个for循环,循环体里,每次读取完字符,加一条语句getchar(),把输入缓冲区的内容清空。
修改代码如下:
#include "stdio.h"
#define N 3
struct R{
char a;
char b;
}A[N],B[N];
void main(){
int i;
for(i=0;i<N;i++){
printf("A%d\t",i+1);
scanf("%c %c",&(A[i].a),&(A[i].b));
getchar();
}
for(i=0;i<N;i++){
printf("B%d\t",i+1);
scanf("%c %c",&(B[i].a),&(B[i].b));
getchar();
}
for(i=0;i<N;i++){
printf("%c,%c\t",(A[i].a),(A[i].b));
}
for(i=0;i<N;i++){
printf("%c,%c\t",(B[i].a),(B[i].b));
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询