c语言改错题:将一个字符数组中的元素逆序存放并输出

作者&投稿:闽磊 (若有异议请与网页底部的电邮联系)
用C语言编写:将一个字符串存放在数组中,并将逆序输出。谢谢~

C语言,直接按逆序输出:

#include
#include

void main()
{
char a[]="abcd123...Z";
int i;
for (i=strlen(a)-1;i>=0;i--) printf("%c",a[i]);
}

直接复制运行

#include
#define N 10
void main()
{
int i,j;
char temp;
char ch[N];

printf("请输入%d个数值:
",N); /*数组赋初值*/
for(i = 0;i < N; ++i)
{
scanf("%d",&ch[i]);
}

printf("
输入的数组是:
"); /*输出原数组*/
for(i = 0;i < N; ++i)
{
printf("%d ",ch[i]);
}
printf("
");

for(i = 0,j = N - 1;i <= j; ++i, --j) /*逆转数组元素*/
{
temp=ch[i];
ch[i]=ch[j];
ch[j]=temp;
}

printf("
逆转后的数组为:
"); /*输出结果*/
for(j = 0;j < N; ++j)
{
printf("%d ",ch[j]);
}
printf("
");
}

在你的代码基础上给你作了修改。。。。。在VC++里面测试了。。。改了的地方注释了下。。希望能帮到你。。。。。

#include "stdio.h"

void sort(char*p,int m)

{

int i;

char change;//改过的地方!!!!!

for (i=0;i<=m/2;i++)

{  

change = *(p+i);//改过的地方!!!!!

*(p+i) = *(p+m-i-1);//改过的地方!!!!!

*(p+m-i-1) = change;//改过的地方!!!!!

}

}

void main()

{

int i,n;

char num[20],temp;//改过的地方!!!!!!

printf("Enter n:");

scanf("%d",&n);//改过的地方!!!!!

temp=getchar();

printf("Enter %d",n);

scanf("%s",num);//改过的地方!!!!!!

sort(num,n);

printf("Result is:
");

for(i=0;i<n;i++)

printf("%c ",num[i]);

}



sort(char*p,int m)
{
int i;
char change,*p1,*p2;
for (i=0;i<=m/2;i++)
{
p1=p+i;
p2=p+(m-1-i);

//change=*p1=*p2;去掉此句,添加以下三句
change=*p1;
*p1=*p2;
*p2=change;
}
}

#include"stdio.h"
main()
{
int i,n;
char*p,num[20],temp;
printf("Enter n:");
scanf("%d",&n);//修改%c为%d
temp=getchar();
printf("Enter %d",n);//修改%c为%d
for(i=0;i<n;i++)
scanf("%c",&num[i]);//修改%s为%c,添加取地址符号&
p=num;
sort(num,n);
printf("Result is:\n");
for(i=0;i<n;i++)
printf("%c ",num[i]);
}

sort(char*p,int m)
{
int i;
char change,*p1,*p2;
for (i=0;i<=m/2;i++)
{
p1=p+i;
p2=p+(m-1-i);
change=*p1=*p2; \\这里一行改为change=*p1; *p1=*p2; *p2=change; 这三行
}
}

#include"stdio.h"
main()
{
int i,n;
char*p,num[20],temp;
printf("Enter n:");
scanf("%c",&n); //%c改为%d
temp=getchar();
printf("Enter %c",n); //%c改为%d
for(i=0;i<n;i++)
scanf("%s",num[i]); //num[i]改为&num[i],%s改为%c
p=num;
sort(num,n);
printf("Result is:\n");
for(i=0;i<n;i++)
printf("%c ",num[i]);
}

/*
Enter n:5
Enter 5: abcde
Result is:
e d c b a
Press any key to continue
*/

sort(char*p,int m)
{
int i;
char change,*p1,*p2;
for (i=0;i<=m/2;i++)
{
p1=p+i;
p2=p+(m-1-i);
// change=*p1=*p2;
change = *p1;
*p1 = *p2;
*p2 = change;
}
}

#include"stdio.h"
main()
{
int i,n;
char*p,num[20],temp;
printf("Enter n:");
// scanf("%c",&n);
scanf("%d",&n);
temp=getchar();
// printf("Enter %c",n);
printf("Enter %d: ",n);
for(i=0;i<n;i++)
// scanf("%s",num[i]);
scanf("%c",&num[i]);
p=num;
sort(num,n);
printf("Result is:\n");
for(i=0;i<n;i++)
printf("%c ",num[i]);
printf("\n");
}


C语言:改错题3:
1. &stu.name,直接stu.name,就已经是地址了 p.name改为p->name 2. *p.sum改为p->sum

英语改错题规则及原则有哪些
英语是一种西日耳曼语,在中世纪早期的英国最早被使用,并因其广阔的殖民地而成为世界使用面积最广的语言。下面就是小编给大家带来的英语改错题规则及原则,希望大家喜欢!英语改错题规则及原则一、短文改错万能公式1.谓语动词的错误是历年考试的重点和热点,常见动词错误类型有:①一般现在时与一般过去时错...

C语言改错一题
include<stdio.h> \/\/末尾分号删除 define SUM 100000 int main(){ float amount,aver,total;int i;\/\/连续输入1000个数据,行末尾的分号多余了,第一个分号改成逗号,因为i=1,total=0都是初始化操作 for (i=1,total=0;i<=1000;i++){ printf("please enter amount:");\/\/加上取地址符,...

C语言程序改错题(分析程序功能,指出题中的错点,对错误进行分析并改正...
三个空);第二:改错题(一般有两个或三个错);第三:编程题(一般是给出主程序,让你自己编子程序)。 上机操作题一般都比较简单,你买一本上机题库100道,基本上做完就肯定没问题,绝对可以过。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 秋枫5410 2011-07-05 · TA获得超过793个赞 知道小有建...

程序改错 (1)用一个函数求两个数之和。
1、第2行(float sum(float x,float y) )2、第5行(return z; )3、第9行(float c; )4、第12 行(printf("\\nSum is %f",c); )完整的C语言程序如下

C语言代码改错题?
include <stdio.h> int main(void){ int flag, n;double eps, item, s;printf("Input eps:");scanf("%lf", &eps);flag = 1;s = 0;n = 1;do { item = 1.0 \/ n;s = s + flag * item;flag = -flag;n = n + 3;} while (item >= eps);printf("s=%f\\n", s);r...

C语言:改错题2
3. while循环应包括输入过程,count没有初始化,修改如下:include<stdio.h> void main(){ int count,grades;printf("请输入分数:");count=0;while(grades>=0){ scanf("%d",&grades);if(grades>=60) count++;} printf("共有%d个学生成绩合格!\\n",count);} 4. scanf ("%d %s",&...

C语言改错题怎么做?
显然p不为空,故进入else,删除p所指结点需要两步,第一步是:q->next=p->next,即将q的下一个结点指向p的下一个结点(q的下一个结点原本是p,这样操作相当于在链表中删除了p所指结点)。第二歩是:free(p),即释放p所指结点。故答案为:将q=p->next改为q->next=p->next。望采纳!

C语言程序改错题?
答:改错如下所示,在程序错误部分有提示。include <stdio.h> int main (void){ int a,b,c,max;\/\/第一处错误,max定义未使用,t未定义却使用了。有两种解决办法,将下面t出现的地方用max代替,或者重新定义t,取消对max的定义。printf (""请输入3个整数:\\n");scanf ("%d%d%d" , &a ,&...

请C高手进来,c语言改错考试题,谢谢^_^
字符串是不可以直接进行判断的,考试程序里实际判断的是两个字符串变量的首地址,肯定是不相等的。应该使用strcmp(buffer1, buffer2);或者如果不可以使用库函数,直接循环单字符比较。另外1)if (flag=1)应该是if (flag==1),不知道是题就是这样还是你手误。2)这句后面应该有大括号把print和...

民丰县13111616955: C语言改错:将字符数组中的字符串逆序输出,纠正程序中存在的错误以实现此功能. -
爨忠三七: 这是正确的程序,你参照一下吧#include<stdio.h>#include<string.h> void Inverse(char str[]); void main() { char str[80]; printf("Please enter a string:"); gets(str); Inverse(str); printf("The inversed string is:"); puts(str); } void Inverse(char str[]) { int ...

民丰县13111616955: 急求C语言编程题答案:将一个字符数组(不多于10个元素)中的元素按逆序重新存放(只能定义一个数组). -
爨忠三七: 首先来分析下你的代码 第一处错误for(;i>j;i--,j--),在这里你的j是赋的初值是0,再--,这不是你想要的吧,细心点.第二处错误,我们知道用字符数组接收字符串的时候,系统会在最后自动加上空字符'\0'以标志字符串结束,当采用你的程序交换...

民丰县13111616955: C语言:将数组中的元素颠倒次序存放(程序改错) -
爨忠三七: #define N 6#include <stdio.h> void main() { int temp,i; int a[N] = {2,4,1,6,8,5}; for(i = 0; i < N; i ++) printf("%4d", a[i]); for(i = 0; i <N/2; i ++)//这里 把循环条件改成i<N/2 不然又换回去了 白干 ..}

民丰县13111616955: C语言中怎样将一个字符数组里面的所有元素变成一个字符串 -
爨忠三七: 首先要明确的是,“字符串”在C语言中的含义实际上就是一个char类型的指针或数组,且最后一位置为0标记字符串的结束.所以,你所说的”字符数组“我是否可以理解为一个没有终结符0的char类型数组? 这样的话,方法如下 #include <...

民丰县13111616955: c语言:编写函数,将一个字符串数组a中的元音字母复制到另外一个字符串b中, 输入和输出在主函数中完成
爨忠三七: #include &lt;stdio.h&gt; #include &lt;string.h&gt; void fun(char a[], char b[]) { char* vs="aeiouAEIOU"; int l,i,j,k; l=strlen(a); k=0; for(i=0;i&lt;l;i++) { for(j=0;j&lt;10;j++) { if(a[i]==vs[j]) { b[k++]=a[i]; break; } } } b[k]='\0'; } int main() { char a[200]; char b[200]; ...

民丰县13111616955: C语言 将一个字符串中的元音字母复制到另一个字符串,然后输出 -
爨忠三七: #include#include#include int vowel(char *, char *); main() { char input[100]; char output[100]; scanf("%s",input); printf("input is %s\n", input); vowel(input, output); printf("output is :%s\n", output); } int vowel(char *input, char *output) { int i,j=0; for(...

民丰县13111616955: C语言编程:将一个数组中的元素逆序怎么写?求高手解答. -
爨忠三七: #include <stdio.h> #define N 5 void main() { int a[N],i,temp; printf("enter array a:\n"); for (i=0;i<N;i++) scanf("%d",&a[i]); printf("array a:\n"); for (i=0;i<N;i++) printf("%4d",a[i]); for (i=0;i<N/2;i++) //循环的作用是将对称的元素的值互换 { temp...

民丰县13111616955: 一个C语言题(改错)1 -
爨忠三七: 2处简单的错误,请参考下面注释部分.# include<stdio.h> # include<string.h> main() {char a[]="clanguage",t; int i,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;j<=k;j++) //将j++改为j+=2 if(a[i]<a[j]) //将< 改为 > {t=a[i];a[i]=a[j];a[j]=t;} puts(a); printf("\n"); }

民丰县13111616955: !!!!!是C语言. 写一函数,将一个字符串中的元音字母复制到另一字符串,然后输出. -
爨忠三七: 定义的时候不用二维数组, 要定义C 修改如下: #include <stdio.h> void main() {void cpy(char [],char []); char sty[80],c[80]; printf("\ninput sting:"); gets(sty); cpy(sty,c); printf("\nThe vonelletters are:%s\n",c); } void cpy(char s[],char c[]) {int i,j; i=0; ...

民丰县13111616955: C语言中,将数组中的元素倒置,然后组成一个新的数组? -
爨忠三七: 展开全部#include"stdio.h" void main() { char table2[8][5]={{"0x00"},{"0x11"},{"0x22"},{"0x55"},{"0x66"},{"0x77"},{"0x12"},{"0x33"}}; int i,j,k=7; char table1[8][5]={{"0x00"},{"0x11"},{"0x22"},{"0x55"},{"0x66"},{"0x...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网