简单的C++编程题,实现数组的逆置,下面是代码,麻烦看下,顺便指导下。运行出错地方好像是输入时出错。

[复制链接]
查看11 | 回复5 | 2011-10-27 11:46:16 | 显示全部楼层 |阅读模式
scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。① 遇空格、“回车”、“跳格”键。② 遇宽度结束。③ 遇非法输入。其实我们平时按enter键的时候 = 回车 换行(0d 0a) 相当于2个字符,所以你在输入完第一个字符,再按回车建的时候,自动把0a 输入到了list去了 修改如下:#includeint main(){int n,i=0;char a,List[100] = {0};repeat:printf("请输入顺序表元素个数\n");scanf("%d",&n);if...
回复

使用道具 举报

千问 | 2011-10-27 11:46:16 | 显示全部楼层
首先我觉得判断n的输入时,有错误:if(n>=100||n100。因为n=100时,共有100个元素,这是正确的。至于后面的元素输入问题,可以先进性一个赋值操作:char* tempList = List 然后将循环体改为for(i=0;i<n;i++){
scanf("%c",&te...
回复

使用道具 举报

千问 | 2011-10-27 11:46:16 | 显示全部楼层
第一个scanf后 请调用fflush(stdin);清空输入缓冲区中 残留的
前一次 输入时的 回车...
回复

使用道具 举报

千问 | 2011-10-27 11:46:16 | 显示全部楼层
建议使用一个指针,代码可以这样写#include"stdio.h"void main(){ char List[100],c,*p;int n,i;printf("请输入字符串(不含空格且长度不超过100):\n");
scanf("%s",List); p=List,n=0;
while (*p...
回复

使用道具 举报

千问 | 2011-10-27 11:46:16 | 显示全部楼层
for(i=0;i<n;i++)scanf("%c",&List);
//这里!!!在其后面加上这条语句
List = '\0'; //因为数组默认最后一个字符是'\0'。printf("The List is:%s",List); //加上\n显示美观...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行