c语言 读入未知行 未知个数的整数

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-05-15
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;}试试这种办法!

单纯地读入未知行和未知个数,那就只能在while循环里实现了。
每行的每个数放入数组里(大小加大点),或者每次动态申请内存(这样节省空间)来存放。
这样要结束的话需要有结束的标志。

一般都是设置两个个宏来定义一个数值,一个用来记录行数,一个用来记录列数,数组变量的大小就可以由这两个宏来确定了,方便初始化。

//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++;