C语言疑问

发布网友

我来回答

4个回答

热心网友

我想你可能理解错题意了跟本不是求1111的个,十,百位上的数字之和

而是求for(i=1;i<=11;i++)s=s*11%1000;运行后三位数的数字之和,
运行后s = 611;最后m= 8;

s*11%1000这个是"%"是求余数的也就是保证s是三位数

热心网友

错误太多了...以我对程序的理解,你是想输入两个值,然后交换顺序输出吧,如果是,请往下看。
exchanger是一个函数,如果是int类型,就要有一个返回值,需要在函数末尾加入return (返回值,且为int类型);但是显然这里不需要,改为void即可。
函数声明:exchanger完全可以在main函数之前定义好。针对放在后面的情况,就是在main函数前声明一下,需要在末尾加一个分号,就像这样:void exchanger(int test[]);然后才可以在main函数以后详细定义。
再看exchanger本身。^是一个运算符,按位异或,整数的交换不需要异或运算,要加一个临时变量。具体程序见后面。
再看main函数。第一个printf,因为你需要在后面输入test值,所以不需要输出test,即便输出也是显示0,没啥意义,所以把后面的参数去掉。然后int(*exchanger)(int test[]);没看懂想干嘛,难道不是直接调用exchanger就行了吗?像这样:exchanger(test);就可以。
还有for循环,只有2个分号,第三个加的多余。
具体程序:
#include
void exchanger(int test[]);
int main()
{
int test[2] = { 0 }, i;
for (i = 0; i <= 1; i++)
{
printf("请输入相关测试数据:");
scanf("%d", &test[i]);
printf("\n");
}
exchanger(test);
return 0;

}
void exchanger(int test[])
{
int tmp;
printf("交换前的值为:%d,%d", test[0], test[1]);

tmp = test[1];
test[1] = test[0];
test[0] = tmp;
printf("交换后的值为:%d,%d", test[0], test[1]);
}

热心网友

C.b=a-(-
-a)
首先运行--a,即a-1,a变为2
接着运行a-a,b=0
D.
b=(a++)%3
首先运行a%3,b=0
接着运行a++,a=4
++和--
写在变量前是先自加或自减再运算
写在变量后是先运算再自加或自减

热心网友

建议检查一下函数flushall定义的参数数量和调用该函数的语句传入该函数的参数数量是否匹配,参数的类型是否匹配(例如,某参数定义为单值,但穿额度的参数是数组)。
看看是不是这个问题。我以前遇到的这个问题情况就是上面所述,仅供参考。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com