请告诉我这个简单代码的错误。
#include<stdio.h>
#include<conio.h>
void main()
{
int i,n;
char a[100];
clrscr();
printf("\n Enter the size of the array");
scanf("%d",&n);
printf("\n Enter the array");
for(i=0;i<n;i++)
scanf("%s",a[i]);
printf("\n Your array is \n");
for(i=0;i<n;i++)
printf("%s",a[i]);
getch();
}
我的意见是 输入数组的大小 2 输入数组 苹果 香蕉 你的阵列 (null)(null)
有人可以解释为什么会这样吗?我哪里错了? 即使我的输入是单个字符,如a或s,这也是相同的输出。
提前致谢
答案 0 :(得分:0)
您没有声明字符串数组本身。
按char a[100];
表示您声明一个可以容纳100个字符的数组(其中一个字符应为NULL
以便正确终止字符串)。换句话说,你只声明一个字符串。
虽然您需要一个字符串数组,因此您需要执行char a[10][100];
之类的操作。这将声明一个包含10个字符串的数组,其中每个字符串可以容纳100个字符。
使用char a[10][100];
更新代码后,我正在关注o / p(您正在寻找):
Enter the size of the array3
Enter the arrayhi
hello
com
Your array is
hi
hello
com
答案 1 :(得分:0)
这里有一些问题。
调用scanf时,需要使用&amp;运算符并传递字符串的地址,例如
scanf("%s", &a[i]);
接下来是a是char数组,而不是字符串数组。你可以试试
char a[20][100];
给你100串20个字符。
答案 2 :(得分:0)
我编辑你的代码检查:
#include<stdio.h>
void main()
{
int i,n;
char a[100];
printf("\n Enter the size of the array: \n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("\n Enter the array value: \n");
int input;
scanf("%d",&input);
a[i] = input;
}
printf("\n Your array is : ");
for(i=0; i<n; i++)
printf("%d , ",a[i]);
printf("\n");
}
你的错误在于读取值并将其分配给数组