c语言 读入未知行 未知个数的整数
#include "stdio.h"int main(int argc,char *argv[]){int x=12345678,t;t=x;while((t/=10)>9);printf("The first is %d to %d
",t,x);return 0;}运行样例:
这方法就可以。
#include int main() { int integer[100]; int i,k = 0; for(i = 0; i < 100; i ++) { printf("输入一个整数: "); scanf("%d", &integer[i]); if (integer[i] == 0) break; //当输入值为0,退出循环 k++; } for(i = 0; i < k; i ++) { printf("%d
", integer[i]); } return 0;}试试这种办法!
每行的每个数放入数组里(大小加大点),或者每次动态申请内存(这样节省空间)来存放。
这样要结束的话需要有结束的标志。
一般都是设置两个个宏来定义一个数值,一个用来记录行数,一个用来记录列数,数组变量的大小就可以由这两个宏来确定了,方便初始化。
//c++程序,c语言自己改
#include<bits/stdc++.h>
using namespace std;
int n,i,j,k,s;
int a[1000][1000],s1[1000];
string st;
int main(){
while (true){
getline(cin,st);
if (st.length()==0)break;
n++;
for (k=0;k<st.length();k++){
if (st[k]!=' ')
s=s*10+int(st[k]-48);
if (st[k]==' '||k==st.length()-1){
s1[n]++; a[n][s1[n]]=s;s=0;
}
}
}
//以下输出部分
for (i=1;i<=n;i++){
for (j=1;j<=s1[i];j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
int n=0;
while(scanf(" ", )!=EOF)
n++;