c语言怎么输入一个正整数T,表示接下来有T组数据,每组数据输入两个正整数?

如题,要简单点的,刚入门!

#include<stdio.h>
int main(){
int T,i,j;
int a[100][2]; // 开一个大的2维数组,例如 可以存放 100 组数据,每组2 个

scanf("%d",&T); // 输入 T
for (j=0;j<T;j++) scanf("%d %d",&a[j][0],&a[j][1]); // 读入 T 组 数据
printf("I read:\n");
for (j=0;j<T;j++) printf("%d %d\n",a[j][0],a[j][1]); // 打印结果
return 0;
}

---
例如:拍入
5
1 2 3 4 5 6 7 8 9 10
输出:
I read:
1 2
3 4
5 6
7 8
9 10追问

如果不知道有多少组数据要测试呢?

追答

你的题目是 输入一个正整数T,
scanf("%d",&T);
T 就是组数,数据总数为 T*2
因为你说你刚入门,所以数组声明为定态大数组。否则,可以动态分配:
int *a;
a = (int *) malloc(sizeof(int) * T * 2);
for (j=0;j<2*T;j++) scanf("%d",&a[j]); 读入 数据。
===============
如果 不知道有多少组数据要测试
那么要有约定,怎样算数据输入结束。例如 输入 -999 表示结束,例如 输入 EOF 表示结束。
根据约定,进行判断,是否输入结束。
i=0;
while(1){
if (scanf("%d",&a[i])==EOF) break;
// 或者 if (a[i]== -999) break;
i++;
}
因为你说你刚入门,否则这里 可以 每读一个数 用 realloc 增加动态数组大小 -- 更 花里胡哨 地编程序。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-23
#include <stdio.h>

int main()
{
int T,i,a,b;
printf("请输入数据的组数T:");
scanf("%d",&T);
for(i=0;i<T;i++)
{
scanf("%d,%d",&a,&b);
//printf("%d,%d",a,b);
}

return 0;
}
该程序的问题是输入的数据无法保存,只能在屏幕上显示,如果要把输入的数据保存下来,可以使用数组

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网