一道C语言问题,请各位高手们帮一下。

一道c语言问题,请各位高手们帮帮忙,谢谢~

char
p[][20]={“get”,”put”,”out”};
p是一个有3个元素的数组,数组中的每个元素都是一个char[20]类型的数组。也就是说,p是一个二维数组。
strlen(p[0])+strlen(p[1])+
strlen(p[2])即计算p中的三个字符串的长度总和,为3+3+3=9。

#include
#include
#include
#include

typedef struct args {
int nums[6];
int count;
int continuous;
}Args;

void getNewNumber(Args *args) {
int i, j;
if (args->count == 5) {
int all = 0;
int _all = 0;
for(i = 0; i < 6; i++) {
all += args->nums[i];
_all += (args->nums[i] % 10);
}
if(all 137 || _all 36)
return;

for (i = 0; i < 6; i++) {
printf("%d ", args->nums[i]);
}
printf("
");
return;
}
i = (args->continuous == 2) ? args->nums[args->count] + 2 : args->nums[args->count] + 1;
if (i > 33)
return;

for (j = i; j <= 33; j++) {
Args n;
memcpy(&n, args, sizeof(n));
if (j == n.nums[n.count] + 1) {
n.continuous++;
n.count++;
n.nums[n.count] = j;
getNewNumber(&n);
} else {
n.count++;
n.nums[n.count] = j;
getNewNumber(&n);
}
}
}

void main()
{
int i = 1;
Args *root = (Args *) malloc (sizeof(Args));
memset(root, 0, sizeof(Args));

for (i = 1; i <= 33; i++) {
root->continuous = 0;
root->count = 0;
root->nums[0] = i;
getNewNumber(root);
}
}

int x1=30,x2=40;
void sub(int x,int y)
{
x1=x;x=y;y=x1; // x,y值 交换,并且x1=x ,由于没有 返回值, 所以只有 那个
//全局 变量x1的 值 保留了下来
}
void main()
{
int x3=10,x4=20;
sub(x3,x4); // x1=x3=10 ,
sub(x2,x1); // // x1=x2=40 ,

// 最后结果x2,x3,x4值都没变只有 x1=x2=40 ,
printf("%d,%d,%d,%d",x3,x4,x1,x2);
}

sub的形参与实参是值传递,所以不改变实参的值,所以X3,X4的值不变,而X1,X2是全局变量,在每个函数里都可以用,所以在sub中改变了X1的值

其实这题很简单啊! 因为sub(x3,x4);调用函数 在sub(x3,x4);中把X3 和X4 是交换了 但是它只在sub(x3,x4);函数里有用 当再次运行到main()中时 它已经被析构了! 如果传地址用指针的话就真正的换了!

sub(x3,x4);//运行时程序首先给x3、x4新建立一个空间,然后把值赋值给这两个空间,然后就和主程序没关系了……
你把sub程序改一下
void sub(int &x,int &y)
{
...//里面不变
}
这样就可以了

一道C语言问题,请各位高手们帮一下。
答:高手们 主演 高手们在线 高清高手们 高手们解析 真心话大冒险问题 请回答1998在线观看 没问题英语怎么说 其他类似问题2016-04-05 一道C语言题,望详解 2011-02-22 一道c语言的题目。请高手们帮帮忙 2012-03-22 一道C语言题,请大家帮帮忙,详细解释一下,谢谢 2 2012-04-21 请高手们帮忙解答一下...

请教大神们一道c语言的题,有关于for循环的 题目是这样的,程序段运行...
答:答案是:B. 7 4 理由如下:第一个循环,整个循环体执行后,输出(x=)7,这个没有疑问,执行完循环,for(x=10;x>3;x--)执行x--操作,此时x=6,满足x>3条件,进入第二个循环。第二个循环,x=6不满足if条件,执行2次--x操作,输出(x=)4,执行完循环,for(x=10;x>3;x--)...

c语言问题,高手请进啊。。。
答:int main(){ int i,j,k,m,a[3];for(i=101;i<666;i++){ m=i;j=0;// 将十进制的自然数 i 各位上的数字分离出来 while(m>0){ a[j++]=m%10;m=m/10;} if(a[0]==0){ continue;} / a[0]+a[1]*7+a[2]*49 不是十进制数 i 的七进制表示。比如十进制数字 281 (...

一道c语言编程题,各位大神帮帮忙啊!
答:include <stdio.h>#include <stdlib.h>int main() {int score = 0, sum = 0, max = 0, min = 100, count = 0, aver = 0;printf("请输入学生成绩:");scanf("%d", &score);while (score >= 0 && score <= 100) {sum += score;if (score > max) {max = score;}if (s...

急!!C语言题目,高手来
答:int main(){ int a,b,i=0;while (i++<5){ scanf("%d",&a);if (i==1) b=a;else b=a>b?a:b;} printf("%d\n",b);return 0;} /// 2./// include <stdio.h> define N 5 int main(){ float a[N],min,max;int i;for (i=0;i<N;i++){ scanf("%f",&...

一道c语言程序题,请大虾们帮帮忙
答:一道c语言程序题,请大虾们帮帮忙 悬赏分:10 - 离问题结束还有 12 天 15 小时 学号 姓名 成绩 02 Lin 92 03 Zhang 87 04 Zhao 72 05 Ma 91 09 Zhen 85 11 Wang 100 12 Li 86 13 Xu 83 16 Mao 78 17 Hao 95 20 Lu 82 21 Song 76 22 Wu 88 1、将表所示学生成绩登记表划分成3...

C语言的一道问题。求高人解答
答:typedef struct{char name[9]; char sex; float score[2]; } STU;void f(STU * a){ strcpy(a ->name,"Zhao");a->sex='m'; a->score[ 1 ]=90.0;} void main(){ STU c={"Qian",' f ',95.0,92.0},* d=&c;f(d); printf("%s,%c,%2.0f,%2.0f\n",...

一道C语言编程问题,高手们来看看帮忙解答下
答:在1到B之间。{ //判断公式左右两侧是不是相等,相等侧符合题目要求 if (c*c*(a*a+b*b) == a*a*b*b){ sum = a+b+c; //判定成立,求和 printf("SUM = %d\nA = %d\nB = %d\nC = %d\n",sum,a,b,c);return 0;} } } } return 0;}输出结果为:...

c语言问题?
答:}c include <stdio.h> int main() { double num, pos_sum = 0, neg_sum = 0, sum = 0;printf("请输入10个数字:\n");for (int i = 0; i < 10; i++) { printf("请输入第%d个数字:", i+1);scanf("%lf", &num);sum += num;if (num > 0) { pos_sum += num;...

发现了一个有趣的c语言问题,请各位大神帮忙解释一下。
答:1.之所以再次编译值不改变,乃是因为系统在加载可执行镜像时所选取的栈的初始地址是相对固定的,a就在这个栈上,而且程序开始到main函数执行,这是一段按部就班的例程,没有什么变数,所以a的地址不变是可以理解的。2.scanf("%d",20000)这句合法并没有什么难以理解的地方,因为指针归根到底也只是一...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网