请问这道程序题怎么做,求过程

请问这道程序题怎么做,求过程,第1张

C语言的带参数的main函数格式为main(int argc,char* argv[]),其中argc为参数个数加1,argv为参数列表,从argv[1]开始。编译后生成可执行文件,可以在执行的程序后加参数,比如编译一个程序为test.exe,则在执行时可以输入:

test.exe 1 firestone

在这里,argc等于3,argv[0]为"test.exe",argv[1]为"1",argv[2]为"firestone"。

如果有下面的程序:

#include <stdio.h>

void main(int argc,char *argv[])

{

printf("You've input %d parameters.\n",argc-1)

for(int i=1i<argci++)printf("The No.%d is:%s\n",i,argv[i])

}

则上面的输入会产生如下运行结果:

You've input 2 parameters.

The No.1 is 1

The No.2 is firestone

你的程序中argv[i]是对应字符串的首地址,所以*argv[i]是每个字符串的第一个数字,如果我让你printf("%s", argv[1])则输出的是12,如果printf("%d",*argv[1])则输出的是1

第一个for循环表示

five 总共循环6次,依次为0,1,2,3,4,5

分别代入第二个for循环

two=0

five=0

第1次是(10-0*5)/2=5即判断0<=5[tow++],即循环6次

第2次是(10-1*5)/2=2.5即判断0<=2.5[tow++]即循环3次

第3次是(10-2*5)/2=0即判断0<=0[tow++]即循环1次

第4次是(10-3*5)/2=-5即判断0<=-5[tow++]即循环0次

第5次是0次

第6次是0次

答案累计++10次所以答案是10

var five,tow,cnt = 0

for (five=0five<=5five++){

for (var tow=0tow<=(10-five*5)/2tow++){

cnt++

}

}

console.log(cnt)

第一次convleft

1234/1000+(1234%1000)*10=1+234*10=2341 可以看出向左移动看一位

第二次convright

2341%10*1000+2341/10=1*1000+234=1234可以看出向右移动了一位

第三次convright

当然就是把1234向右移动一位了,也就是4123了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11372497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存