C菜鸟问题...跪求解答!!!

xiaoxiinlose 2007-12-11 02:24:24
#include <stdio.h>
main ()
{
int n=0,m=0;
int a[n],b[m];

printf ("Input counts \n");

for ( n=0 ; n!='\n' ; n++)
scanf ("%d",&a[n]);

for ( m=0 ; m <= n; m++ )
b[m] = a[n-m];

printf ("%3d",b[m]);

getch ();

}


题目本意是要输入一个数组,然后按逆序输出该数组.. 比如输入 12345. 输出 54321..
在VC中编译有6个错误,一个警告.
请高手解答. 越详细越好. 自为学习.
...全文
460 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jenew 2008-05-01
  • 打赏
  • 举报
回复
main()
{
int x[5],i;
for(i=0;i<5;i++)
scanf("%d",&x[i]);
for(i=4;i>=0;i--)
printf("%d ",x[i]);
system("pause");
}
这样就可以了吧
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
不明LZ在说什么
lzw_1211 2008-01-21
  • 打赏
  • 举报
回复
#include <stdio.h>
#define n 5
void main()
{
int i,a[n],b;
printf("输入一组数");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n/2;i++)
{
b=a[i];
a[i]=a[n-i-1];
a[n-i-1]=b;
}
printf("逆序为\n");
for(i=0;i<n;i++)
printf("%d\t",a[i]);
printf("\n");
}
本人也是刚学,不知对不对,请指教!
kanadeng 2008-01-20
  • 打赏
  • 举报
回复
如果等待要用getch()
那么头文件那里要加一个#include<conio.h>

这个题我也刚做过的..嘿嘿..


#include<stdio.h>
void main()
{
int a[5];
int i,j,temp;
printf("请输入: ");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("逆序前: ");
for(i=0;i<5;i++)
printf("%d",a[i]);
for(i=0,j=4;i<j;i++,j--)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
printf("逆序后: ");
for(i=0;i<5;i++)
printf("%d",a[i]);
getchar();
}
pqalzm999 2008-01-20
  • 打赏
  • 举报
回复
我菜 LZ貌似更菜些呢.....
legendhb 2008-01-19
  • 打赏
  • 举报
回复
呵呵,楼主犯了和我一开始一样的问题哦,呵呵
moonfans 2008-01-19
  • 打赏
  • 举报
回复
赶紧看书,这还了得啊
「已注销」 2008-01-11
  • 打赏
  • 举报
回复
运行正确代码如下:
#include <iostream.h>
int main()
{
int m[10],n;
cout<<"Please input the length of array(the length shoule <=10): "<<endl;
cin>>n;
for(int i=1;i<=n;i++)
cin>>m[i];
for(int j=n;j>0;j--)
cout<<" "<<m[j];
return 0;
}
简单__快乐 2008-01-10
  • 打赏
  • 举报
回复
路过 帮顶
qiuqiu173 2007-12-29
  • 打赏
  • 举报
回复
#include <stdio.h>
main () //在VC6.0要有返回值(void ,int 等等)
{
int n=0,m=0;
int a[5],b[5]; //数组的空间必须用常量指定,再说这里为0,有何意义?

printf ("Input counts \n");

for ( n=0 ; n!='\n' ; n++)
scanf ("%d",&a[n]);

for ( m=0 ; m <= n; m++ )
b[m] = a[n-m];

printf ("%3d",b[m]);

getch(); //在VC6.0 getch()的头文件我不知道是什么,我通常用getchar()

}
C334745710 2007-12-16
  • 打赏
  • 举报
回复
#include <stdio.h>
main ()
{
int n=0,m=0;
int a[n],b[m]; //是不是零不说,n,m是非常变量,这样行不行呀?

printf ("Input counts \n");

for ( n=0 ; n!='\n' ; n++)
scanf ("%d",&a[n]);

for ( m=0 ; m <= n; m++ )
b[m] = a[n-m];

printf ("%3d",b[m]);

getch ();

}
xiaoshang_program 2007-12-15
  • 打赏
  • 举报
回复
#include <stdio.h>
main ()
{
int n=0,m=0; //系统不支持 这样定义把
int a[n],b[m]; //数组 可以这样定义吗?

printf ("Input counts \n");

for ( n=0 ; n!='\n' ; n++) //这写的是什么? 用WHILE 语句写把 你是想判断 知道输入回车 结束吗?
scanf ("%d",&a[n]);

for ( m=0 ; m <= n; m++ )//n是几?
b[m] = a[n-m]; //数组B 空间是太大了点了把!!! 写个宏定义

printf ("%3d",b[m]);

getch (); //这是什么类型输出 用PRINTF
}

回去好好看书,我刚开始也这样写的乱七八糟 呵呵 good luck with you
walkerdh 2007-12-14
  • 打赏
  • 举报
回复
数组长度你定义的是0位。。。然后又用"\n"做循环终止条件。。。。。。。。我败了。。。。

再看看书去吧,你现在很多东西都是乱七八糟的
fly_6189 2007-12-14
  • 打赏
  • 举报
回复
定义数组时必须给定数组大小,
否则编译器通不过,
如楼主的a[n],b[m] ,
除非 前面定义了

const int n=10;
const int m=10;

gyyforever 2007-12-14
  • 打赏
  • 举报
回复
定义数组时要明确写明要定义的数组的长度,例如要a[100],b[1000],不能直接用一个变量去定义数组的长度,如楼主的a[n],b[m] ,因为编译器要给数组分配内存,如果不明确数组长度怎么能分配内存?,如果要用动态数组的话,就要用到void malloc()或者void calloc()函数了.
starwalker 2007-12-13
  • 打赏
  • 举报
回复
#include   <stdio.h> 
main ()
{
int n=0,m=0;
int a[n],b[m]; // 数组下标必须是常量

printf ("Input counts \n");

for ( n=0 ; n!='\n' ; n++)
scanf ("%d",&a[n]);

for ( m=0 ; m <= n; m++ )
b[m] = a[n-m];

printf ("%3d",b[m]);

getch ();

}
internazelo 2007-12-13
  • 打赏
  • 举报
回复
看c++ primer的定义 end操作返回的迭代器指向vector的“末端元素的下一个”
所以要-1
zhangfj2001 2007-12-13
  • 打赏
  • 举报
回复

vector <int> ::iterator iter = ivec.end()-1

iter+1 != ivec.begin()

ivec.end 还需要再-1么?

新手,关注……
internazelo 2007-12-13
  • 打赏
  • 举报
回复
这是我的程序,小弟也是新学,欢迎指正。

#include<iostream>
#include<vector>
using namespace std;

int main()
{
vector<int> ivec;
int a;
cout << "Input your number!(Ctrl+Z to exit)" << endl;
while (cin >> a)
ivec.push_back(a);
if (ivec.empty())
{
cout << "No Element?" << endl;
return -1;
}
for (vector<int>::iterator iter = ivec.end()-1; iter+1 != ivec.begin() ; --iter )
{
cout << *iter << endl;
}
system("pause");
return 0;
}
jiqimaoqiongqiong 2007-12-13
  • 打赏
  • 举报
回复
#include<stdio.h>
void main()
{
int i, n=5 ,a[5],k;
int temp,*p1,*p2;
printf("please input the numbers");
for(k=0;k<5;k++)
scanf("%d",&a[k]);
printf("The original array:\n");
for(p1=a;p1<a+n;p1++)
printf("%3d",*p1);
printf("\n");
p1=&a[0];
p2=&a[4];
for(i=0;i<n/2;i++)
{
temp=*p1;
*p1=*p2;
*p2=temp;
p1++;
p2--;
}
printf("The array has been inverted:\n");
for(p1=a;p1<a+n;p1++)
printf("%3d",*p1);
printf("\n");
}
加载更多回复(17)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧