一个小小的问题

时间:2021-11-02 08:33:59
问题是这样的:
我输入一组数字--很长,我想定义一个数组,使得每一个数字对应数组中的每一项。
请问具体我该怎么做???
 

16 个解决方案

#1


int number[];
int i=0
cin >> number[i];
while(number[i]!=0)
{
i++;
cin >> number[i];
}

#2


按老办法输入~

#3


你的意思是将类似于  2 33 456 32 434  23  2 34 44 233 4545 的这样一个长的字符串分割成一个数字的数组是吗?如果是这样的话,可以用一个循环,循环读字符串中的字符,读到分割 符号就暂停,将读取的子字符串转换成数字放到数组中去,这样循环知道结束

#4


1.首先定义数组的长度,然后进行输入,如下:
int iFor=0;
int iaTemp[50];
for(iFor=0; iFor<50; iFor++) {
     scanf("%d", &iaTemp[iFor]);
     fflush(stdin);
}
2.如果你不知道数组的长度,我推荐你使用链表队列,会很方便阿

#5


#include <iostream>
#include <vector>

using namespace std;

void main()
{
  vector <int> intVector;
  vector <int>::iterator iter=intVector.begin();
  int i=-1;
  while(i!=0)
  {
    cin>>i;
    intVector.push_back(i);
  }
  for(iter;iter!=intVector.end();iter++)
  {
    cout<<*iter<<" ";
  }
  
}

#6


#define SZ 100
main()
{
   int num[SZ];
   char s[SZ];
   int i,j;
   printf("输入数字");
   scanf("%s",s);
   for(i=0;s[i];i++)num[i]=s[i]-'0';
   printf("输入的数字为:\n");
   for(j=0;j<i;j++)printf("%d",num[j]);
}

#7


如果是多位或者有负值,好像上面的方法都不怎么样啊,shitalone(西特龙) 为什么不让我输入0值啊? sinusoid(天涯怪客),你的程序只能输入一个数。

#8


是一个数,但是有很长的数字组成!
想把他们与一个数组相对应!!

#9


不让你输入零是给你提供一个结束输入的方法,当输入完毕时可以输入0表示结束。
当然你也可以改成别的数值来控制结束,这就随你了。

#10


#define num 100
main()
{
  int string[num];
  int i;
  printf("输入数字:");
  
  for(i=0;i<=100;i++)
    do
   {
    scanf("%d"string[i]);
   }while(string[i]!=null);
  printf("数字为");
  for(i=0;i<=100;i++)
   printf("%d",string[i]);
}

#11


输入的长度由SZ来定,保存在num[]数组中,可以啊

给分呀~~~~~   :)

#12


linda78512(万剑) 
你的程序,好象有点问题!!
在C中找不到null!!
所以这种结束方式是不正确的!!!

GZCompiler(编译器)
你说的有道理,但是一组数字,怎么可能没有0,
你的那种选择太欠缺考虑,
是不是太着急回答我的问题了,谢谢了!!
你的下一个帖子,用模板来做,不是不可以,
可是对于一个小程序来说,用模板不是很慢,
但是有种大材小用的做作感!(我实话实说)

sinusoid(天涯怪客)
你的程序写的真棒,佩服!!!
我想问,你是怎么想到的??
而且有一个小的问题:for(i=0;s[i];i++)num[i]=s[i]-'0';
这一行,您可否解释一下,谢谢!!!!

#13


GZCompiler(编译器)
你说的有道理,但是一组数字,怎么可能没有0,
你的那种选择太欠缺考虑,
是不是太着急回答我的问题了,谢谢了!!
你的下一个帖子,用模板来做,不是不可以,
可是对于一个小程序来说,用模板不是很慢,
但是有种大材小用的做作感!(我实话实说)

----------------------------------------------
回复:
是啊,既然不可能没有0,你就换一个别的来控制输入结束嘛,我只是用0举例而已。
我不觉得用模板有什么不好,况且用模板来实现只是存储上的一种策略,如果你的数字很长且不定长,怎么在一开始分配数组呢?

#14


GZCompiler(编译器)
回复:
是啊,既然不可能没有0,你就换一个别的来控制输入结束嘛,我只是用0举例而已。
我不觉得用模板有什么不好,况且用模板来实现只是存储上的一种策略,如果你的数字很长且不定长,怎么在一开始分配数组呢?

你说的也有道理,不过你可以看看sinusoid(天涯怪客)的程序,我觉得写的很棒!!!

#15


int number[];
int i=0
cin >> number[i];
while(number[i]!=0)
{
i++;
cin >> number[i];
}

#16


To: ghdut(傻瓜) 

是的,我也觉得sinusoid的程序不错,并且适合从文件中读取数值字符串。
不过觉得一点不好,就是用定长的数组接受不定长的输入,这样未免有些被动,同时也浪费资源。
当然了,方法是多样的,选用哪种要个人习惯和使用场合,说这些只不过通过这个例子来讨论一下相关的问题。

#1


int number[];
int i=0
cin >> number[i];
while(number[i]!=0)
{
i++;
cin >> number[i];
}

#2


按老办法输入~

#3


你的意思是将类似于  2 33 456 32 434  23  2 34 44 233 4545 的这样一个长的字符串分割成一个数字的数组是吗?如果是这样的话,可以用一个循环,循环读字符串中的字符,读到分割 符号就暂停,将读取的子字符串转换成数字放到数组中去,这样循环知道结束

#4


1.首先定义数组的长度,然后进行输入,如下:
int iFor=0;
int iaTemp[50];
for(iFor=0; iFor<50; iFor++) {
     scanf("%d", &iaTemp[iFor]);
     fflush(stdin);
}
2.如果你不知道数组的长度,我推荐你使用链表队列,会很方便阿

#5


#include <iostream>
#include <vector>

using namespace std;

void main()
{
  vector <int> intVector;
  vector <int>::iterator iter=intVector.begin();
  int i=-1;
  while(i!=0)
  {
    cin>>i;
    intVector.push_back(i);
  }
  for(iter;iter!=intVector.end();iter++)
  {
    cout<<*iter<<" ";
  }
  
}

#6


#define SZ 100
main()
{
   int num[SZ];
   char s[SZ];
   int i,j;
   printf("输入数字");
   scanf("%s",s);
   for(i=0;s[i];i++)num[i]=s[i]-'0';
   printf("输入的数字为:\n");
   for(j=0;j<i;j++)printf("%d",num[j]);
}

#7


如果是多位或者有负值,好像上面的方法都不怎么样啊,shitalone(西特龙) 为什么不让我输入0值啊? sinusoid(天涯怪客),你的程序只能输入一个数。

#8


是一个数,但是有很长的数字组成!
想把他们与一个数组相对应!!

#9


不让你输入零是给你提供一个结束输入的方法,当输入完毕时可以输入0表示结束。
当然你也可以改成别的数值来控制结束,这就随你了。

#10


#define num 100
main()
{
  int string[num];
  int i;
  printf("输入数字:");
  
  for(i=0;i<=100;i++)
    do
   {
    scanf("%d"string[i]);
   }while(string[i]!=null);
  printf("数字为");
  for(i=0;i<=100;i++)
   printf("%d",string[i]);
}

#11


输入的长度由SZ来定,保存在num[]数组中,可以啊

给分呀~~~~~   :)

#12


linda78512(万剑) 
你的程序,好象有点问题!!
在C中找不到null!!
所以这种结束方式是不正确的!!!

GZCompiler(编译器)
你说的有道理,但是一组数字,怎么可能没有0,
你的那种选择太欠缺考虑,
是不是太着急回答我的问题了,谢谢了!!
你的下一个帖子,用模板来做,不是不可以,
可是对于一个小程序来说,用模板不是很慢,
但是有种大材小用的做作感!(我实话实说)

sinusoid(天涯怪客)
你的程序写的真棒,佩服!!!
我想问,你是怎么想到的??
而且有一个小的问题:for(i=0;s[i];i++)num[i]=s[i]-'0';
这一行,您可否解释一下,谢谢!!!!

#13


GZCompiler(编译器)
你说的有道理,但是一组数字,怎么可能没有0,
你的那种选择太欠缺考虑,
是不是太着急回答我的问题了,谢谢了!!
你的下一个帖子,用模板来做,不是不可以,
可是对于一个小程序来说,用模板不是很慢,
但是有种大材小用的做作感!(我实话实说)

----------------------------------------------
回复:
是啊,既然不可能没有0,你就换一个别的来控制输入结束嘛,我只是用0举例而已。
我不觉得用模板有什么不好,况且用模板来实现只是存储上的一种策略,如果你的数字很长且不定长,怎么在一开始分配数组呢?

#14


GZCompiler(编译器)
回复:
是啊,既然不可能没有0,你就换一个别的来控制输入结束嘛,我只是用0举例而已。
我不觉得用模板有什么不好,况且用模板来实现只是存储上的一种策略,如果你的数字很长且不定长,怎么在一开始分配数组呢?

你说的也有道理,不过你可以看看sinusoid(天涯怪客)的程序,我觉得写的很棒!!!

#15


int number[];
int i=0
cin >> number[i];
while(number[i]!=0)
{
i++;
cin >> number[i];
}

#16


To: ghdut(傻瓜) 

是的,我也觉得sinusoid的程序不错,并且适合从文件中读取数值字符串。
不过觉得一点不好,就是用定长的数组接受不定长的输入,这样未免有些被动,同时也浪费资源。
当然了,方法是多样的,选用哪种要个人习惯和使用场合,说这些只不过通过这个例子来讨论一下相关的问题。