新手求助java 二维数组组问题

在淘宝用花呗分期购买了两件东西!若一样退款了 另外一样的钱是分期还还是下个月还?_百度知道
在淘宝用花呗分期购买了两件东西!若一样退款了 另外一样的钱是分期还还是下个月还?
我有更好的答案
还是一样的退款了的就不用还啦!只要还你买的另外一件就可以了。还是分期
但是不是说600以上才能分期吗?我两件加起来才600多 一件才300
饿。没想到这点
采纳率:71%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。新手求助 八皇后问题【c语言吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:579,645贴子:
新手求助 八皇后问题收藏
这是一同学变的 代码但一运行 就无限循环
停不下来#include&stdio.h&#include&stdlib.h&void try(int [][10],int [][10],int);void check(int [][10],int,int,int);void output(int [][10]);int n=0;main(){
i,j,array[10][10],a[10][10];
for(i=0;i&=7;i++)
for(j=0;j&=7;j++)
a[i][j]=0;
array[i][j]=0;
try(array,a,0);
system("pause");
return 0; } void try(int array[][10],int a[][10],int q){
for(u=q,v=0;v&=7;v++)//第q行第v列
if(a[u][v]==0)
array[u][v]=1;
check(a,u,v,1);//将(u,v)位置对应横行竖列和斜着的所有元素赋值为1
printf("Case %d:\n",n);
output(array);
try(array,a,q+1);
check(a,u,v,0);// 将(u,v)位置对应横行竖列和斜着的所有元素赋值为0
array[u][v]=0;//将(u,v)位置清空
}//将(u,v)位置对应横行竖列和斜着的所有元素赋值为q void check(int a[][10],int u,int v,int q) {
for(i=u,j=0;j&=7;j++)
a[i][j]=q;
for(j=v,i=0;i&=7;i++)
a[i][j]=q;
for(i=0;(i+v-u)&=7;i++)
a[i][i+v-u]=q;
for(i=0;i&=7;i++)
if(i+v-u&=0)
a[i][i+v-u]=q;
for(j=0;u+v-j&=0;j++)
a[j][u+v-j]=q;}//打印数组 void output(int array[][10]){
for(i=0;i&=7;i++)
for(j=0;j&=7;j++)
printf("%d ",array[i][j]);
printf("\n");
然后分享我的八皇后 代码#include&stdio.h&#include&stdlib.h&void sort(int [][8],int);void print(int [][8]);int canput(int [][8],int row,int col);int i=0;//放法次数 main(){
int board[8][8]={0};
sort(board,0);//摆放八皇后
system("pause");
return 0;}void sort(int board[][8],int row){
int c,nextc,r;//c为本次列数
nextc为下次列数
r为判断变量
for(c=0;c&8;c++)
if(canput(board,row,c))//判断本格是否能放
board[row][c]=1;//放置皇后
if(row==7)//如果已经放满
i++;//放置次数加一
printf("CASE %d\n",i);
print(board);//输出
for(nextc=0;nextc&8;nextc++)//查看下一次能否放置
if(canput(board,row+1,nextc))//如果可以放置
if(r!=1)//不能放
board[row][c]=0;//本格为0
//进行下一次
sort(board,row+1);//能放就进行下一列
}//end of if
board[row][c]=0;//归零
}//end of for
}void print(int board[][8])//输出二维数组 {
for(row=0;row&8;row++)
for(col=0;col&8;col++)
printf("%d ",board[row][col]);
printf("\n");
printf("\n");}int canput(int board[][8],int row,int col){
for(i=0;i&8;i++)
if(board[i][col]==1) //有同列的
for(j=0;j&8;j++)
if(board[row][j]==1) //有同行的
if(((i-row)==(j-col)||(i-row)==(col-j))&&board[i][j]==1) // 对角线上有的
大神在哪里?
不吉岛你想说啥
回复4楼:1l的代码哪里错了?
大神在这~这是你的鞭么?
回复6楼:你妹er
登录百度帐号欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 5340 人关注过本帖
标题:新手求助,如何输入数组
等 级:新手上路
&&问题点数:0&&回复次数:5&&&
新手求助,如何输入数组
想写一个输入二维数组之后可以用其中元素进行计算的程序。但输入数组似乎就已经是个问题。如果不能直接通过input输入数组的话,那么通过输入元素和行列数是否可以做到向程序输入数组并计算?
搜索更多相关主题的帖子:
等 级:新手上路
等 级:新手上路
等 级:论坛游民
帖 子:36
专家分:25
python里没有数组只有元组,列表和字典
你成了我用尽一生去纪念的过客。。。。
来 自:郑州
等 级:版主
威 望:75
帖 子:2635
专家分:6403
记得某本书里说过,二维数组就是数组的数组,三维数组就是数组的数组的数组。。。依此类推
同时,再高维的数组在内存中也是线性存储的,只是看你怎么理解罢了。真正访问的时候,多个维度就是多个位移+偏移量。
举个简单的二维数组例子
程序代码:
&&& a = [[1,2],[3,4]]
[[1, 2], [3, 4]]
&&& a[1][1]
从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
等 级:论坛游民
帖 子:36
专家分:25
回复 5楼 lonmaor
这在python里是列表好吧,在C语言里才是数组
你成了我用尽一生去纪念的过客。。。。
版权所有,并保留所有权利。
Powered by , Processed in 0.113812 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved当前位置:
&FORTRAN新手
求助主程序循环问题
FORTRAN新手
求助主程序循环问题
作者 xiaobear20
我现贴出主程序部分:
& &&&PROGRAM MAIN&&
& && &&&USE SAME
& && &&&IMPLICIT NONE& && && && &
& && & N=120
& && &M=241
& && &ITMAX=60&&
& &&&ITER=0& && && && &
& &&&CALL INPUT
& &&&CALL GRID& && &
& &&&DO I=1,M& && && && && && && && &!!!!!!初始条件!!!!!!!!!!
& && && & DO J=2,N-1& & & & & & & && &&&
& && && & W(I,J)=1-EXP(-ETA(J))
& && && & ENDDO& && && && && && && && &
& &&&ENDDO
60 ITER=ITER+1
& &&&SELECT CASE(ITER-ITMAX)
& &&&CASE(:-1)& && &&&!&&&= -1& &整数
& &GO TO 70
& & CASE(0)& && && & !& &=0
& & WRITE(6,2500)
& & GO TO 70
& & CASE(1& && && &!& &&=1
& & WRITE(6,2600)
& & GO TO 90
& & END SELECT
70&&DO I=1,M
& && && &DO J=2,N-1
& && && &WOLD(I,J)=W(I,J)& && &
& && &&&ENDDO
& &&&ENDDO& & & && &&&
& &&&CALL EDDY
& &&&CALL CMOM& && && && && && && && && && &
& &&&CALL SOLV
& &&&DO I=2,M
& && && & DO J=2,N-1
& && && &&&CONVER(I,J)=ABS(1-(WOLD(I,J)/W(I,J)))&&
& && && & ENDDO
& && &ENDDO
& && &MX=MAXVAL(CONVER)& &!选取误差中的最大值
& && &IF(MX.LE.EPS)THEN& & !& &&&&=0.0001 !收敛判断&&EPS=0.0001& &误差 CONVER
& && &GO TO&&90& &
& && &ELSE
& && &GOTO 60
& && &ENDIF& && && && && && && && && && && && && && && && && && && && && && && && && && &
90 CALL OUTPUT
& && &END PROGRAM
程序主要过程如下是,(计算的是一个二维网格点上的速度,即二维数组),先给迭代的矩阵赋初值,继而进行第一次迭代,每次迭代完后,把此次结果与上一次的结果进行比较,逐点比较,选出最大误差,再与收敛条件ESP比较,如满足条件则输出结果,如不满足,再返回迭代,直到满足收敛条件为止,(其中也对迭代的次数进行了判断)
我的问题如下:不知道怎么回事,程序只进行了一次计算就输出了结果,没有进行第二次,还有误差判断CONVER(I,J)总是为0,我把子程序的结果也输出看了一下,各个子程序还是运行了一次。我就不知道问题在哪了。是结构问题还是别的,求大神指道,分少别嫌弃啊,急等啊
& &&&CALL CMOM& && && && && && && && && && &
& &&&CALL SOLV
在子程序EDDY中都用到了初始值,CMOM是矩阵系数的计算,SOLV是最后的结果计算,谢谢
这个程序没有办法改,比如你的 W(I,J) 的值有更新吗?在你的程序中,你的 WOLD 与 W 一直都是一样的,那么 CONVER 当然总是 0 了。因此,只迭代一次是很正常的。如果在 WOLD 之后,还有 W 更新,那么情况可能会不一样。但这个没有办法看出来,因为你的所有 subroutine 的返回值是啥都看不出来……
另外,你似乎喜欢用全局变量作为 subroutine 的参数和返回值,很多时候,这个习惯并不好,呵呵……
引用回帖:: Originally posted by snoopyzhao at
这个程序没有办法改,比如你的 W(I,J) 的值有更新吗?在你的程序中,你的 WOLD 与 W 一直都是一样的,那么 CONVER 当然总是 0 了。因此,只迭代一次是很正常的。如果在 WOLD 之后,还有 W 更新,那么情况可能会不 ... 对,如果W值改变了的话,这样是把前一次的W值赋给WOLD啊,这样就可以看做是与前一次值进行比较啊,那这个全局变量的问题有怎么改了,我是新手 呵呵,
引用回帖:: Originally posted by xiaobear20 at
对,如果W值改变了的话,这样是把前一次的W值赋给WOLD啊,这样就可以看做是与前一次值进行比较啊,那这个全局变量的问题有怎么改了,我是新手 呵呵 你的 W 值在哪里改变的呢?在 WOLD 之前,还是之后?反正你给的主程序中看不出来……
用全局变量似乎也没有啥问题,如果可能尽量不要用全局变量(这只是我个人的看法)……
引用回帖:: Originally posted by snoopyzhao at
你的 W 值在哪里改变的呢?在 WOLD 之前,还是之后?反正你给的主程序中看不出来……
用全局变量似乎也没有啥问题,如果可能尽量不要用全局变量(这只是我个人的看法)…… 是在WOLD之后改变的,就在子程序 EDDY&&CMOM&&SOLV后啊&&在SOLV后 用W值与WOLD比较,即W与前一次W值比较
引用回帖:: Originally posted by xiaobear20 at
是在WOLD之后改变的,就在子程序 EDDY&&CMOM&&SOLV后啊&&在SOLV后 用W值与WOLD比较,即W与前一次W值比较 w 到底在哪里改变的?
从你的描述来看应该是在 wold 之前,因为 wold 之后,w 和 wold 就是相同的了,所以就就会出问题了。
你可以把 wold 那个循环放在 eddy, cmom solv 之前试试看……
哦,不好意思,看错了。如果在 eddy, comom, solv 之后变化的应该没有问题啊……
你把 w 和 wold 打印出来看看吧……
如果不是保密的,以及巨大的程序,最好放个可以编译执行的源码上来吧,否则太费劲了……
24小时热帖
下载小木虫APP
与700万科研达人随时交流23:12 提问
C语言新手求助。请问如何输入一组多行的数字,每行的长度可以任意
程序要求是首先输入一个数字确认行数,然后在每一行输入一组整数(长度是由输入者输入的数字个数决定),我想用二维数组键入,这一部分的代码如下
int num[310][310];
int main()
int is = 0;
int sum = 0;
scanf_s("%d", &T);
for (i = 0; i & T; i++)
for (int j = 0; j & 310; j++)
scanf_s("%d ", &num[i][j]);
char ch = getchar();
if (ch=='\n')
num[i][j] = '\0';
但是并没有成功,请问有什么办法可以成功键入多组不同长度的数据
按赞数排序
num怎么定义的?你如果可以估算出每个维度的最大长度,可以用它作为第二维数组的长度(或者超出一点)
也可以使用链表,实现真正意义的长度可以任意
我也是新人。
二维数组的话,数组的大小要是确定的。
所以你那个i<T是错误的,不能那样用。
你可以把两个长度取大一点。
或者采用其他思路(我再看看)。
或者用动态数组,好像是vector吧。
(这块我还没仔细学到,建议你去看看)。
我也是新人。
二维数组的话,数组的大小要是确定的。
所以你那个i<T是错误的,不能那样用。
你可以把两个长度取大一点。
或者采用其他思路(我再看看)。
或者用动态数组,好像是vector吧。
(这块我还没仔细学到,建议你去看看)。
我也是新人。
二维数组的话,数组的大小要是确定的。
所以你那个i<T是错误的,不能那样用。
你可以把两个长度取大一点。
或者采用其他思路(我再看看)。
或者用动态数组,好像是vector吧。
(这块我还没仔细学到,建议你去看看)。
这个其实解决的话还是可以的啊
我也是新人。
二维数组的话,数组的大小要是确定的。
所以你那个i<T是错误的,不能那样用。
你可以把两个长度取大一点。
或者采用其他思路(我再看看)。
或者用动态数组,好像是vector吧。
(这块我还没仔细学到,建议你去看看)。
可以先把输入的数据收集起来,然后再分解。
getchar是会吃掉换行符的,所以你想判断是否有换行是行不通的
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐

我要回帖

更多关于 c 二维数组 的文章

 

随机推荐