c语言二维数组,一位数组的问题,请大神开示?????

来 自:江西财经大学
等 级:贵宾
威 望:58
帖 子:2959
专家分:10848
若无序,请遍历
若有序,加上限定条件再遍历
[fly]存在即是合理[/fly]
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
srand&&这个函数
和rand这个函数。。。
有心者,千方百计;无心者,千难万难。
等 级:论坛游民
帖 子:20
专家分:23
回复 3楼 w
这俩函数不是返回随机数么?没法按楼主意思输出啊?
来 自:江西南昌
等 级:论坛游侠
帖 子:76
专家分:189
回复 2楼 azzbcc
大哥,请把思路说清楚一点好吗?我一下还真的没理解
来 自:江西南昌
等 级:论坛游侠
帖 子:76
专家分:189
回复 3楼 w
如果你知道,麻烦你说详细点好吗?小弟才疏学浅啊!
等 级:贵宾
威 望:24
帖 子:1659
专家分:7255
也有可能多个数相加吧1,2,3。曾经思考过,多层循环遍历各种可能,利用绝对值函数。但没有找到更易方法。
兴趣+信心+耐心
等 级:论坛游侠
帖 子:56
专家分:114
程序代码:#include&stdio.h&
int main()
&&& int a[<font color=#];
&&& int i,j;
&&& int low=<font color=#,hign=<font color=#;&&&&&&&&//自己定义
&&& for(i=<font color=#;i&<font color=#;i++)
&&&&&&&&a[i]=i;&&&&&&&&&&&&&&& //自己输入,scanf(&%d&,&a[i]);
&&& for(i=<font color=#;i&<font color=#;i++)
&&&&&&&&for(j=<font color=#;j&<font color=#;j++)
&&&&&&&&&&&&if(a[i]+a[j]&=<font color=#&&a[i]+a[j]&=<font color=#&&a[i]&a[j])
&&&&&&&&&&&&&&& printf(&%d+%d\n&,i,j);
&&& return <font color=#;
等 级:论坛游民
帖 子:20
专家分:23
按你的假设,范围是(5~10),设m n,m从1开始,n=5-m,直到m第一次小于n,然后把5换成6、7、8、9、10,这样遍历一遍输出m n。
[ 本帖最后由 神鸡降临 于
20:46 编辑 ]
等 级:论坛游民
帖 子:20
专家分:23
回复 8楼 你不想去那儿
8楼if(a[i]+a[j]&=5&&a[i]+a[j]&=10&&a[i]&a[j])
当a[i]=a[j]时也得判断。
版权所有,并保留所有权利。
Powered by , Processed in 0.020679 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights ReservedC语言编程问题啊,请大神赐教-中国学网-中国IT综合门户网站
> C语言编程问题啊,请大神赐教
C语言编程问题啊,请大神赐教
转载 编辑:李强
为了帮助网友解决“C语言编程问题啊,请大神赐教”相关的问题,中国学网通过互联网对“C语言编程问题啊,请大神赐教”相关的解决方案进行了整理,用户详细问题包括:<,具体解决方案如下:解决方案1: 分析:该问题的难点在于如何确定发牌序列,也就是生成52个[0, 51]之间的不重复的随机数。下面源码生成随机序列的思想是,先定义一个有52个元素的数组,其元素值从0顺序递增到51,然后:第1步:随机生成一个不超过(51 - 随机次数)的数字作为下标,取出对应的元素值,作为一个发牌索引;第2步:将该元素之后的元素值前移一个位置;第3步:返回第1步的操作,直接到循环结束;源码:#include &stdio.h&#include &stdlib.h&#include &time.h&#define Count 52//////////////////////////////////////////////////////////////////////////// 获取每个玩家的扑克牌随机序列int GetRandomSingle(int Min, int Max){& & // 要取得[a,b)的随机整数,使用(rand() % (b-a)) + a& & // 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a& & // 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1& & return ( (rand() % (Max - Min + 1)) + Min );}bool GetRandomAll(int *pOutBuffer){& & if (pOutBuffer == NULL)& & & && & int pSourceData[Count];& & for (int i=0; i&C ++i)& & {& & & & pSourceData[i] =& & }& & int count = C& & for (int i=0; i&C i++)& & {& & & & int curIndex = GetRandomSingle(0, count-1);& & & & pOutBuffer[i] = pSourceData[curIndex];& & & & // 重排待选择数据& & & & count = count -1;& & & & for (int j=curI j& j++)& & & & {& & & & & & pSourceData[j] = pSourceData[j+1];& & & & }& & }& &}//////////////////////////////////////////////////////////////////////////int main(){& & char *value[Count] = {& & & & "hA", "h2", "h3", "h4", "h5", "h6", "h7", "h8", "h9", "h10", "h11", "h12", "h13",& & & & "sA", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "s10", "s11", "s12", "s13",& & & & "dA", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d10", "d11", "d12", "d13",& & & & "cA", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "c10", "c11", "c12", "c13",& & };& & // 生成发牌序列& & int index[Count] = {0};& & srand((unsigned)time(NULL));& & GetRandomAll(index);& & // 输出发牌结果& & for (int i=0; i&4; ++i)& & {& & & & // 1. 获取当前玩家的发牌结果& & & & int index_one[13] = {0};& & & & int startPos = i * 13;& & & & for (int j=0; j&13; ++j)& & & & {& & & & & & index_one[j] = index[startPos + j];& & & & }& & & & // 2.排序& & & & for (int m=0; m&13; ++m)& & & & {& & & & & & for (int n=m+1; n&13; ++n)& & & & & & {& & & & & & & & if (index_one[m] & index_one[n])& & & & & & & & {& & & & & & & & & & int temp = index_one[m];& & & & & & & & & & index_one[m] = index_one[n];& & & & & & & & & & index_one[n] =& & & & & & & & }& & & & & & }& & & & }& & & & // 3. 输出& & & & printf("Player%d: ", i+1);& & & & for (int k=0; k&13; ++k)& & & & {& & & & & & printf("%-5s", value[index_one[k]]);& & & & }& & & & printf("\n");& & }& & printf("\n");& & return 0;}结果:通过对数据库的索引,我们还为您准备了:问:在一组10个数的数组中,找出该数组中的“中值”和“频数”以及“频数的个数”答:#include#include#define maxn 10int arr[maxn][2] = {0};void sort(int len){ //用冒泡排序对二维数组升序排序 int i, for(i = 0; i & i++) { for(j = 0; i + j + 1 & j++) { if(arr[j][0] & arr[j + 1][0]) { int temp = arr[j][...===========================================问:将一10个数据的数组,先一 一判断是否有小于零的数据,如果有结束程序,...答:void main(){int k=0,i,a[10]; printf("请输入10个数,用空格分开,按回车结束输入\n"); for(i=0;i===========================================问:扑克牌,不包大小王,有红桃(hearts)、黑桃(spades)、方片(diamond...答:这个非常的容易,等会儿===========================================问:输入20个整数,转置并输出值。 谢谢!答:#include int main() { int a[20],i; for(i=0;i=0;i--) printf("%d ",a[i]); return 0; } 你是要倒序输出么?每个数字用空格隔开或输一个按下回车===========================================问:有一字符串,内有数字和非数字字符,将其中连续的数字做为一个整数,依...答:你的程序最大的问题在于这句: for(n=0;(*(str+n))&='0' && (*(str+n))='0' && (*(str+i+n))===========================================问:一个多为数组(例如三围),输入数据后求最大值与排序。我想到一个方法...答:1、写三个for遍历数组 (1)使用冒泡排序排序 (2)排序时使用一个中间值记录最大值 2、搞定===========================================问:一个多为数组(例如三围),输入数据后求最大值与排序。我想到一个方法...答:第三题: #include #include int main(int argv, char* argc[] ) { double a,b,c; double B_4 double x1,x2; printf("Please input a b c:\n"); scanf("%lf%lf%lf",&a,&b,&c); B_4ac=b*b-4.0*a*c; if(B_4ac===========================================问:平时学习c语言到了数据结构突然变得好难,不是说他原理怎么难理解,相反...答:三个字送给你:多实践! 编程这种事多半是靠实践,然后自己领悟,书本不过是领你进门,修行还是靠自己。===========================================问:我写的程序如下 #include "stdio.h"int main(){ int a,b,c; double sum1...答://望采纳#include "stdio.h"int main(){ int a,b,c; double sum1,sum2,sum3; printf("请输入某员工的应发工资、五险一金、个税起征点:\n"); scanf("%d%d%d",&a,&b,&c); sum1=a-b-c;/*应纳税所得额*/ {if (sum1=========================================== 要输出空格直接用空格,0不是空格===========================================语言,结构严谨,不像C语言那么灵活,易于理解和学习。 然后可以继续学习C语言,这个语言比较灵活。有了pascal的基础,在进行C语言编程就不会因为C语言的灵活而有问题 。后...===========================================VC6 是 Visual C++ 不也是C++编译器嘛。。。 C++编译器都可以编译C。 单纯的C编译器好像很少的样子。 VC6之上的版本都很兼容。 比如VC7 8 9 10 11。 11是最新...=========================================== 题目描述给你n个整数,求他们中所有奇数的乘积。输入输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假...===========================================找工作最忌讳的就是撒谎,千万不要这样啊,兄弟。没有人能帮你骗过面试官的!!!一般好公... 不要去编造大的项目经验。把基础知识认真掌握了。面试的时候回答问题才会从容,让人...=========================================== #define MAX_INPUT_LENGTH 255 // char input_str[MAX_INPUT_LENGTH]; char sign_set[MAX_INPUT_LENGTH]; int sign_num[MAX_INPUT_LENGTH]; // scanf("%...=========================================== 给你两个建议、第一、如果输入脚数大于头数怎么办?、、第二、如果算出来的数为小数点怎么办?、、最后、给你说说scanf这个函数、必须有 &这个符号 、在这个阶段...=========================================== 我是这么认为的!时钟和温度都是在显示子程序中显示的显示子程序的变量用形参传递进行切换时,把显示的形参改为温度和时间就行了啊具体变量为温度或时间,就看你的按键...===========================================error C2143:语法错误,缺少符号;error C2660:scanf无参error C2065:未知的标识符error C2059:语法错误error C2001:多半是转义字符引起的问题error C2065:未知的标识符error...=========================================== { time = hour*100 + ShowTest(time); delay(); } else { gettempts(); display(t); } 把这个放在while(1)中,就可以了。 希望我的回答对你有帮助,有什么问题欢迎一起...===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助C语言二维数组菜鸟问题,请大神帮忙看看哪里错了_百度知道
C语言二维数组菜鸟问题,请大神帮忙看看哪里错了
3;););for(i = 0;for(j = 0;%f&#92;5门float score[S1][S2],不知哪里错了; S2, &score[i][j]); i &}float stu_aver()
&#47;n& S2, j ++){s = s + score[i][j];input();;float c[3],i + 1);t&void input(){for(i = 0打错了:&#92; 3;for(k = 0, b),应该是这个#include&return 0;3人#define S2 3&#47;;for(i = 0;n&, a, j & j & j ++){scanf(&&#47;}printf(& k++){printf(& i ++){for(j = 0;highest(h;}}}float highest( i & S1; score[i][j]){h = score[i][j]; S1;}}}printf(&}}}int main(){ j &lt, int b){h = score[0][0]; i ++){printf(&b = j + 1; i &%f %d %d&#92;n&; 3; 3;c[i] = s &#47, b );k &lt,stu_aver();#define S1 3&#47;&#92;float c[3], j ++){if(h &&#92.h&&#47; i ++){for(j = 0,}问题在于求平均的那个函数;%f&a = i + 1;&#47;n&printf(&quot,c[k]);please input student %一个学生平均分{float s = 0
提问者采纳
//这里可以放在第二层for外面;s&h;return&=0;i&stu_aver(c),也没有返回值如highest函数;&k&%f&highest();score[i][j];&);0,没有返回值,b;&=&&}}}printf(&quot,但放这里也没事}}}int&//一个学生平均分;),函数参数传递的也没有意义;j&%d&//s每次循环过后都要重新初始化,不然会和前面的叠加for(j&0,给h赋初值是也是不恰当的stu-aver函数类型定义错误和没有传递参数保存数据(如果不传递就要用指针来做了);&s&stu_aver(float&=&0;score[i][j];a;\n&quot,s赋初值的位置也是不恰当的部分函数修改如下;i&&S1;input(),会出现后面a;//应赋初值为零;h&=&a;&i&=&&}printf(&//传递定义的数组是必须的for(k&main(){float&nbsp,不懂再问void&+&nbsp,c[k]);=&j&0;highest()//这里的参数传递的没有意义;+&3,你下面调用函数也没传递参数{float&&&score[i][j]){h&nbsp,&;=&int&k;c[i]&&=&S2;&printf(&quot、b错误for(i&=0;\n&=&nbsp,不然不好比较;a&%d\n&j&%f\t&++){s&;&&lt,所以上面的函数也不用参数float&&1,减少运算量;i&k++){printf(&}void&++){for(j&//你这里没有进行参数传递;0;++){float&&j&3,&b&1;+&++){if(h&&&3;);&j&=&b&nbsp,&c[3];int&&&nbsp,函数传递的参数不对;c[3])&nbsp,这里需要传递数组参数保存数据{for(i&h;&3;s&i&/&=&0你这个错的太多了;h
改好了!谢谢!请问如果stu_aver函数要用指针怎么用呢?
float&*stu_aver()&&//一个学生平均分(首先要包含stdlib.h头文件)(因为返回指针型,所以函数为指针函数){float&*p=(float&*)malloc(3*sizeof(float));//(定义三个大小单位的指针p,malloc函数在上面的头文件里)for(i&=&0;&i&&&3;&i&++){float&s&=0;for(j&=&0;&j&&&3;&j&++){s&=&s&+&score[i][j];*(p+i)=&s&/&3;//这里用指针保存数值}}return&p;//返回指针首地址}int&main(){float&h;int&k;input();printf(&\n&);highest();float&*p=(float&*)malloc(3*sizeof(float));p=stu_aver();//用定义的指针来接受函数返回的指针首地址for(k&=&0;k&&&3;&k++){printf(&%f\t&,*(p+k));}printf(&\n&);return&0;}&这里都是用指针了,没有用数组作运算,而且不传递参数时一般都这么用运行成功还望采纳
提问者评价
其他类似问题
为您推荐:
其他3条回答
score[0][0]//已帮你修改好了;=&=&j&&&0;j&,&int& } printf(&++)
scanf(&j&/&i&++)
s&&&lt,&&main(){ float&&nbsp,& return&%d&&%f\t&b;S2&=&j&0;++) {
printf(& return&&c[])&3;=&i&&=&&&=&stu_aver(float&nbsp.h&void&int&a;3//5门float&0; //返回你求的的值}void&#define&j&=&score[i][j])
h&nbsp,&=&i&%d\n& for(i&b){
h&&score[i][j];1);&S1&nbsp,&&&;%d&a; int&0;3; input();++) {
s&&\n&s&//内循环结束后存入数组 }}int&j&s&S1;k++) {
b&3//3人#define&&=&S1;=& for(i&0;score[S1][S2],错误的地方也给你加注释说明了#include&&nbsp,&&
} } printf(&&
c[i]&i&1;=&&0; //传递数组进去;++) {
for(j&a;+&+&j&nbsp,c[k]);j,& //在内循环外初始化为0
for(j&&&0;
a&i&+&b);c[3]; highest(h;S2;input(){
} }}float&3;b&nbsp,&k&;//一个学生平均分{ float&);score[i][j]);&%f&=& printf(&i&=&
for(j&a;&k,&+&h,&0;0;score,得到平均分 for(k&&&&0;++)
if(h&&lt,&input&&&=&highest(float&1;h;S2;);s&h;i&);please&nbsp,i&student&&&nbsp:\n&score[i][j];\n&=&%f&int& stu_aver(c);3;
谢谢!请问如果stu_aver函数要用指针的话怎么改?
#include&stdio.h&#include&stdlib.h&&#47;&#47;引入这个头文件#define S1 3&#47;&#47;3人#define S2 3&#47;&#47;5门 float score[S1][S2];int i,&#47;&#47;中间代码省略,太长了。void stu_aver(float *c)
&#47;&#47;一个学生平均分,此处修改为指针{
float s = 0;
for(i = 0; i & 3; i ++)
&#47;&#47;在内循环外初始化为0
for(j = 0; j & 3; j ++)
s = s + score[i][j];
c[i] = s &#47; 3;
&#47;&#47;内循环结束后存入数组
}} int main(){
printf(&&#92;n&);
highest(h, a, b);
float *c = (float*)malloc(sizeof(float)*3); &#47;&#47;声明为指针,并申请3个内存空间&#47;&#47;当前保存3个学生平均成绩,如果是n个就申请n个
stu_aver(c);
&#47;&#47;传递数组进去,得到平均分
for(k = 0;k & 3; k++)
printf(&%f&#92;t&,c[k]);
printf(&&#92;n&);
return 0;}
OK了~然后我还有一点疑问啊:“void stu_aver(float *c)
&#47;&#47;一个学生平均分,此处修改为指针”这里形参是数组内容,而main函数里面的调用“stu_aver(c);
&#47;&#47;传递数组进去,得到平均分”这里为啥传的是数组首地址?最后输出数组又不加*号了
数组名实质上就是这个数组的第一个元素的首地址,其中 c[0] 实际上可以写为: *(c+0)c[1] 可以写为 *(c+1)
float stu_aver()
//一个学生平均分
float s = 0;
float c[3];
for(i = 0; i & 3; i ++)
for(j = 0; j & 3; j ++)
//一个学生不是有5门课么?
s = s + score[i][j];
c[i] = s / 3;
//应该写到外面
//少了返回值,你是把所有学生的成绩都求了一遍,
//那就用一个数组来实现多个返回值
正确的应该是:
void stu_aver(float c[])
//一个学生平均分
float s = 0;
for(i = 0; i & S1; i ++)
for(j = 0; j & S2; j ++)
循环写的不对。。两个你都写成j了。。应该是一个i和一个j
二维数组的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言问题。不知道下面的代码那里错了?请大神帮我看看,初学者答疑。-中国学网-中国IT综合门户网站
> C语言问题。不知道下面的代码那里错了?请大神帮我看看,初学者答疑。
C语言问题。不知道下面的代码那里错了?请大神帮我看看,初学者答疑。
转载 编辑:李强
为了帮助网友解决“C语言问题。不知道下面的代码那里错了?请”相关的问题,中国学网通过互联网对“C语言问题。不知道下面的代码那里错了?请”相关的解决方案进行了整理,用户详细问题包括:i;Code&#92;); scanf(& total =total +%f& token不知道什么情况都: syntax error before &#39;CODE&#92;;Users&#92; int i,i#include &lt?我用CFree5的:12;i++) { printf(&
} aver = total&#47; if(total &stdio,#define SUM 100000,total = 0;&#39;Desktop&#92;n aver = %10; printf(&quot:&#92;= 1000;;.2f&#92。[Error] C; return 0, char *argv[]){
for (i = 0;int main(int argc: error.h&n&quot.c; i &= SUM) break,&amount);D Please Enter your amount :&}MinGW5编译器老是提示错误;num = %d&#92,aver),aver,具体解决方案如下:解决方案1:大哥,define后面不能有分号解决方案2:谢谢!初学者,见谅!呵呵解决方案3:if(total &= SUM)大于等于不能这么写要改成if((total == SUM)||(total&SUM))解决方案4:我那个写法没有问题的。谢谢你!通过对数据库的索引,我们还为您准备了:问:#include&stdio.h& #define PI 3.14159; void main() { float c,...答:与scanf("%f",&r);不匹配===========================================问:#include &stdio.h& int main() { int n,i; char g[81]; scanf("%d",&n)...答:明显一道acm题,我发现没有错啊,getchar()是要的。while(i===========================================问:clude &stdio.h& int nextdate(int y,int m,int d,int f,fwrong=0); f=(...答:注意:注释部分是你出错的部分:#include #include //仅仅是输出,没有必要int void nextdate(int y,int m,int d) { int flag = 1; //此处增加一个标识,日期是否错误 switch(m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: /...===========================================问:下面这些C语言代码运行不了,哪里错了? #include&stdio.h& main() { int ...答:#includevoid main()//void ,vs的主函数返回类型不能为空{int a=1941;printf("请输入1941\n");scanf("%d",&b);// 输入错误if(b==1941){printf("输入正确!\n");}else{printf("输入错误!\n");}//while(getchar());//没有作用的语句可以不...===========================================问:要求:程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的...答:#includeint main(){ while(scanf("%d",&m) != EOF){ int a, b, c, x, a=m/100; x=m%100; b=x/10; c=m%10;//此处你有误 y=c*100+b*10+a; printf("这个数逆输出为:%d\n", y); } return 0;} ===========================================问:#include &stdio.h& int main (void) {int *p,a; p=&a; scanf_s("%d",p+...答:它应该具体问题具体分析,但最重要的用来写的头文件,然后主要功能,如背部问题,应该分为三个部分,第一部分:数据录入; 第二部分:解决问题 方法的第三部分:所得到的输出。===========================================问:还有对这个错误不太理解error C2061: syntax error : identifier 'Ispri...答:加个头文件 #include #include BOOL Isprime(int val) { for(i=2;i===========================================问:#include&stdio.h& int main() { int a[10]; int n,low,mid,high,found,...答:算法没错啊,关键是你输入的x个数据要按从小到大排序!===========================================问:#include &stdio.h& #include &stdlib.h& #include &conio.h& #include ...答:没有错的。不过你没有main()函数而已。一个C程序不能没有main()函数。=========================================== public static void main(String[] args) { A a = new B(); try { a.process(); } catch (Exception e) { e.printStackTrace(); } }抛出异常就行了=========================================== 访问下php程序 看看数据出没出来~ 如果出来了 就是前端部分有出错的地方===========================================&不知道你的转义字符是不是有意为之,我就我的观点分析吧。 1.str[] = \"hello\" ,这... 不具有给数组赋值的功能。 2.就是你后面都在测试的转义功能似乎都没能实现代码能...===========================================;这是c语言标准库函数,存放在stdlib.h的头文件中,要想使用它,必须加在stdio.h下面加一行#include&stdlib.h&程序才能正常执行。你可以试一下,如有问题,欢迎...===========================================格式应该正确。 public class Bubble { public static void main(String[] args) { int[] } } 这是楼主的代码,不知道是不是没有复制完。。 我就只能想象一下你的问题了。 1,成...===========================================你好,枚举类型,应该是你传递的有问题,可能在func1中改了value的值了。如果不是,那就不知道了。=========================================== showmadal的意思是打开后原窗体不可点击. Fuser为需要打开的窗体, 你那里的... 需要注意如果你的窗体在程序启动时候已经最为主窗体创建,那么就用下面方法. proc...===========================================电脑蓝屏时候电脑干呢能说说我会跟据说较准确回答 蓝屏代码或事件查看器里面内容普通人看懂请蓝屏前电脑表现和操作说详细些(我跟据提供信息重新回答) 般蓝屏自己...===========================================- 取时间部分 (取现行时间 (), #秒)) + "秒" ※我的数学基础很差,不知以上代码行不?望... 假 开始 = 假 _启动窗口.位置 = 1 _启动窗口.总在最前 = 假 鸣叫 () 信息框 ("请注...=========================================== 在所有控件全部添加在窗体后,然后在三个文本框里全部输入数字后,没提示任何错误===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助

我要回帖

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

 

随机推荐