首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组的输出有关问题

2013-01-17 
数组的输出问题#include stdafx.h#include stdio.h#include string.h#define LENGTH 20int _tmain(i

数组的输出问题

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define LENGTH 20

int _tmain(int argc, _TCHAR* argv[])
{
     char num[LENGTH];
     int i,j;

     printf("Enter characters:");
 for(i=0;i<8;i++)
 scanf("%c",&num[i]);
 for(i=strlen(num);i>=0;i--)
 printf("%c",num[i]);
 printf("\n");

 return 0;
}

上面这段代码,我的目的是想把输入的单词反向输出,可为什么会出现乱码呢,不知道问题出在哪里啊,谁可以指点一下啊。谢谢。
[解决办法]
scanf("%c",&num[i]); ==> scanf("%s",num);试试
[解决办法]
     for(i=0;i<8;i++)
         scanf("%c",&num[i]);
==>
     scanf("%s",num);//两句换这一句
==>
     for(i=0;i<8;i++)//或者换这三句
         scanf("%c",&num[i]);
     num[i]='\0';
[解决办法]
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define LENGTH 20
 
int _tmain(int argc, _TCHAR* argv[])
{
     char num[LENGTH]; // 这里必须将其初始化为空,即char num[LENGTH] = "";
     int i,j;
 
     printf("Enter characters:");
     for(i=0;i<8;i++) // 这里最好用LENGTH
         scanf("%c",&num[i]); // 由于LENGTH是20,所以最多18个字符+1个回车+0
     for(i=strlen(num);i>=0;i--) // 记得数组是从0开始的,所以"abcdef\n"的长度为7,索引6是'\n'
         printf("%c",num[i]);
     printf("\n");
 
     return 0;
}

代码不复杂,用debugger简单跟踪下即可。

[解决办法]
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define LENGTH 20

int _tmain(int argc, _TCHAR* argv[])
{
     char num[LENGTH];
     int i;

     printf("Enter characters:");fflush(stdout);
     for(i=0;i<8;i++)
         scanf("%c",&num[i]);
         num[8]=0;
     for(i=strlen(num)-1;i>=0;i--)
         printf("[%c]",num[i]);
     printf("\n");
 
     return 0;
}

热点排行