×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
解題報告
#26044: c语言二维数组死做
jack_2003
(Jack_Yao kaijie)
學校 : 上海市延安中学
編號 : 43048
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [183.195.59.217]
最後登入時間 :
2021-08-17 14:01:23
a005.
Eva 的回家作業
--
POJ
| From: [117.143.50.210] | 發表日期 : 2021-07-14 06:46
高考完入坑的小白(小学时候入坑pascal差点成OIer,结果编译器劝退,当然也有兴趣成分辣,数组都碰到就弃坑了)
后来入坑arduino,迫不得已入坑c语言,现在有空了,正好找回账号了,暑假拿着这个老账号来刷刷题,既然解出来了那就拿思路出来献献丑。
技术不高,欢迎多多交流
——————————————————扯淡分割线———————————————————————
由于高中信息课学过数组,虽说刚入坑编程,但数组还是听说过的。
不过我高中信息basic里学的是一维的,这里可以感受出来似乎二维会方便一点。
关于二维数组概念及基本使用建议自行搜索,
简而言之就是把所有数据按excel一样按行按列排好,然后对应变量名就会继承 “a[行][列]”
其中a为变量名,行和列分别为整数,并且可以用变量代替,
结合题目,其实做一个20行4列的数组就可以把题目要求完全满足了。
还有种办法是先不定死20行,先输入题目数变量,然后再套一个大循环用题目数变量来定义行数,不过我嫌麻烦(毕竟多一层循环嘛),就直接按题目要求定死20行了,这也是为啥我叫“死做”的原因。
当然如果题目没有数量限制的话,还是得用后者做。。。
好了,那就不废话了,上代码(include和main函数不放上来了,注释特地去了注释符,要编译的话自行删除)
int times, n, a[20][4];
times为题目数,n为循环变量,设定二维数组,框定死20行4列
scanf("%d", ×);
先输入题号
for (n = 1; n <= times; n++) {
for 循环输入开始
scanf("%d %d %d %d", &a[n][1], &a[n][2], &a[n][3], &a[n][4]);
}
for (n = 1; n <= times; n++) {
for 循环输出开始
if (n < times) {
判断是否为最后一行,否,要回车。
if ((a[n][3] + a[n][1] - 2 * a[n][2]) == 0)
printf("%d %d %d %d %d\n", a[n][1], a[n][2], a[n][3], a[n][4], (a[n][4] + a[n][2] - a[n][1]));
else
printf("%d %d %d %d %d\n", a[n][1], a[n][2], a[n][3], a[n][4], a[n][4]*a[n][2] / a[n][1]);
判断数列类型的核心代码,比较简单
}
else {
判断是否为最后一行,是,无回车输出。P.S这个判断不加我没试过,不加应该不行,格式不一定对,还是严谨一点吧
if ((a[n][3] + a[n][1] - 2 * a[n][2]) == 0)
printf("%d %d %d %d %d", a[n][1], a[n][2], a[n][3], a[n][4], a[n][4] + a[n][2] - a[n][1]);
else
printf("%d %d %d %d %d", a[n][1], a[n][2], a[n][3], a[n][4], a[n][4]*a[n][2] / a[n][1]);
判断数列类型的核心代码if分支,比较简单
}
}
综上,祝诸位食用愉快(ー_ー)ノ
ZeroJudge Forum