如何 用c语言 实现输入不定数目的一行整数

Python09

如何 用c语言 实现输入不定数目的一行整数,第1张

输入的数目不定,只是在设计阶段未知,在实际输入的时候,一定是有具体的数量的,所以对于这种情况,需要先做一个约定,常用的有两种方法:1 在输入前,先输入一个总数,然后输入总数个整数。2 约定输入的结束符,如遇到换行结束输入,或者以EOF为结束输入标记。对于每种情况,处理的方式大致相同,但略有区别。1 不需要保存每个值,而是只需要使用该值即可。这样可以读入每个数,逐个处理即可。2 需要保存所有值的,可以将所有值保存在数组中,这个数组可以是静态的,也可以是动态的。如果可以确定数据的最大规模,比如最多1000个数,那么可以先创建一个足够大的,比如1000个元素的数组,静态动态均可。然后依次将元素存入。如果无法确定最大规模,那么就必须用动态数组。对于先输入总数的情况,可以在得到总数后,根据总数申请一个动态数组。对于总数在输入完成前始终未知的情况,可以先申请一定空间的值,在每次空间不足时,使用realloc函数,重新分配空间,实现不定量存储。

#include <stdio.h>

int main()

{

int a[2][3]

int i,j

for( i=ii<2i++)

for(j=0j<3j++)

scanf("%d", &a[i][j] )

for( i=ii<2i++)

{

for(j=0j<3j++)

printf("%d ", a[i][j] )

printf("\n")

}

return 0

}

你可以一个一回车,也可以输入一行一回车,也可以全输入再回车,数据间只要以空格分隔开就好

如果是输入三行三列的话,这样就可以了:

源代码如下:

#include<stdio.h>

void main()

{

    int A[3][3],n,m,Logo,i,j,k

int pd(int a,int b,int c)

for(n=0n<3n++)

for(m=0m<3m++)

scanf("%d",&A[n][m])

for(n=0n<3n++){

Logo=pd(A[n][0],A[n][1],A[n][2])

i=A[n][0],j=A[n][1],k=A[n][2]

if(Logo==1)

if(i==j&&j==k)

puts("regular triangle")

else

puts("right triangle")

if(Logo==0)

puts("not a triangle")

}

}

int pd(int a,int b,int c)//判断是不是三角形

{

int logo

if(a+b<=c||a+c<=b||b+c<=a) logo=0

else logo=1

return logo

}