为什么我的程序在C中显示错误的输出

时间:2017-09-09 16:17:35

标签: c

我想要一个程序,用户将在其中提供三个名称,并将在结果中打印出来。

我声明了一个字符串“name”并且还将'name'变量声明为数组(或者我想要)

但是当我运行程序时,我得到的输出很奇怪  它只接受一个名字,我认为它与数组声明有关,所以我改变了'char name [3] [20];' 'char name [20] [3];'但没有改变......

请帮帮我..

程序:

#include<stdio.h>
#include<conio.h>
struct variable
{
char name[3][20];
}v;
void main()
{
    int i=0,j=0;
    clrscr();
    printf("Enter Three names \n");
    for(i=0;i<3;i++)
        {
        scanf("%c",&v.name[i]);
        }
    for(j=0;j<3;j++)
        {
        printf("%c\t",v.name[i]);
        }
getch();
}

输出图像: - &gt; here

2 个答案:

答案 0 :(得分:0)

%c是char数据类型的格式字符串 要打印字符串,您需要使用%s格式字符串

# include <stdio.h> 

int main(){
    char name [3][20];
    printf("Enter 3 names\n");

    for(int i = 0; i < 3; i++){
        scanf("%s", name[i]);
    }

    for(int i = 0; i < 3; i++){
        printf("%s\n", name[i]);  
    }
    return 0;
}

答案 1 :(得分:-1)

  1. 您必须使用%s代替%c,(第一个使用字符串,第二个使用单个字符)。
  2. printf("%c\t",v.name[i]);更改为printf("%c\t",v.name[j]);,否则您的循环将无法通过所有名称,因此请将其打印出来。