#include stdio.h<stdio.h> void main() { int x,y; x=y=0; while (x<10) x+=++y; printf ("%d,%d&q

C语言题目 #include &stdio.h& void ch(int *a,int *b) { c=*a; *a=b; *b=c; } void main( ) { sta_百度知道
C语言题目 #include &stdio.h& void ch(int *a,int *b) { c=*a; *a=b; *b=c; } void main( ) { sta
具体是这样的#include &stdio.h& void ch(int *a,int *b) { c=*a; *a=b; *b=c; } void main( ) { static int a[10]={32,5,18,56,98,52,78,15,132,112};int x=0,y=1,i;if(a[x]&a[y]) ch(&x,&y);for(i=2;i&10;珐俯粹谎诔荷达捅惮拉i++)if(a[i]&a[x]) x=i;else if(a[i]&a[y]) y=i;ch( &a[x], &a[y]);for(i=0;i&10;i++) printf(&%d,&,a[i]);}怎么做 谢谢
答案是32 132 18 56 98 52 78 15 5 112
void ch(int *a,int *b) { c=*a; *a=b; *b=c; }
这一行定义了一个void类型的函数ch,形式参数是指针变量a,b,函数的功能是实现两个整型数据的交换比如,我将你的主函数补充为下面的函数:void main(){int x=5,y=6;printf(&%d,%d\n&,x,y);ch(&x,&y);printf珐俯粹谎诔荷达捅惮拉(&%d,%d\n&,x,y);}程序运行后结果应该如下:5,66,5希望对你有所帮助
具体是这样的#include &stdio.h& void ch(int *a,int *b) { c=*a; *a=b; *b=c; } void main( ) { static int a[10]={32,5,18,56,98,52,78,15,132,112};int x=0,y=1,i;if(a[x]&a[y]) ch(&x,&y);for(i=2;i&10;i++)if(a[i]&a[x]) x=i;else if(a[i]&a[y]) y=i;ch( &a[x], &a[y]);for(i=0;i&10;i++) printf(&%d,&,a[i]);}怎么做 谢谢
答案是32 132 18 56 98 52 78 15 5 112
分析你的输出结果可以看出,只有5和132进行了交换,详细的分析如下:main( ) { static int a[10]={32,5,18,56,98,52,78,15,132,112}; 定义一个静态数组并初始化int x=0,y=1,i; 定义变量x,y,i,其中x,y分别初始化为0和1if(a[x]&a[y]) ch(&x,&y); 如果a[0]&a[1],交换x,y的值,本题中32&5,所以现在x=1,y=0for(i=2;i&10;i++)
for 循环if(a[i]&a[x]) x=i; else if(a[i]&a[y]) y=i; for循环体,第一次循环时,i=2,x=1,y=0,代入循环体,因为a[2]=18,a[1]=5,a[0]=32,所以两个条件均不成立,所以此次循环结束时,i=3,x=1,y=0,开始第二次循环,代入循环体可得y=3,此次循环结束时i=4,x=1,y=3,然后开始第三次循环,代入循环体可得y=4,此次循环结束时i=5,x=1,y=4,然后开始第四次循环,代入循环体可得y=4,此次循环结束时i=6,x=1,y=4,然后开始第,五次循环,代入循环体可得y仍然等于4,,此次循环结束时i=7,x=1,y=4,然后开始第六次循环,代入循环体可得y=4,此次循环结束时i=8,x=1,y=4,然后开始第七次循环,代入循环体可得y=4,此次循环结束时i=9,x=1,y=8,然后开始第八次循环,代入循环体可得y=8,此次循环结束时i=10,x=1,y=8,i=10,不再满足循环条件a&10,,for循环结束ch( &a[x], &a[y]); 交换a[x],a[y]的值,x=1,y=8,交换a[1],a[8]的值,因为使用的是指针变量进行交换,所以交换了的a[1],a[8]的值可以带回到原数组中....a[1]=132,a[8]=5,其他的值都没有改变for(i=0;i&10;i++) printf(&%d,&,a[i]); 输出数组a的各个元素}
其他类似问题
为您推荐:
sta的相关知识
其他4条回答
//使用指针交换两个变量的内容#include&stdio.h&void ch(int *a ,int *b){
temp = *a;
*b =}void main(){
int a = 4;
int b = 5;
ch (&a,&b);
printf(&a = %d,b = %d\n&,a,b);}
具体是这样的#include &stdio.h& void ch(int *a,int *b) { c=*a; *a=b; *b=c; } void main( ) { static int a[10]={32,5,18,56,98,52,78,15,132,112};int x=0,y=1,i;if(a[x]&a[y]) ch(&x,&y);for(i=2;i&10;i++)if(a[i]&a[x]) x=i;else if(a[i]&a[y]) y=i;ch( &a[x], &a[y]);for(i=0;i&10;i++) printf(&%d,&,a[i]);}怎么做 谢谢
答案是32 132 18 56 98 52 78 15 5 112
分析你的输出结果可以看出,只有5和132进行了交换,详细的分析如下:
main( ) { static int a[10]={32,5,18,56,98,52,78,15,132,112}; 定义一个静态数组并初始化
int x=0,y=1,i; 定义变量x,y,i,其中x,y分别初始化为0和1
if(a[x]&a[y]) ch(&x,&y); 如果a[0]&a[1],交换x,y的值,本题中32&5,所以现在x=1,y=0
for(i=2;i&10;i++)
if(a[i]&a[x]) x=i; else if(a[i]&a[y]) y=i; for循环体,
第一次循环时,i=2,x=1,y=0,代入循环体,因为a[2]=18,a[1]=5,a[0]=32,所以两个条件均不成立,所以此次循环结束时,i=3,x=1,y=0,
开始第二次循环,代入循环体可得y=3,此次循环结束时i=4,x=1,y=3,
然后开始第三次循环,代入循环体可得y=4,此次循环结束时i=5,x=1,y=4,
然后开始第四次循环,代入循环体...
#include &stdio.h& void ch(int *a,int *b) { c=*a; *a=b; *b=c; }// 交换数组中的两个数
*a=b应该改成*a=*b void main( ) { static int a[10]={32,5,18,56,98,52,78,15,132,112};int x=0,y=1,i;if(a[x]&a[y]) ch(&x,&y);for(i=2;i&10;i++)if(a[i]&a[x]) x=i;//X保存最大数的下标else if(a[i]&a[y]) y=i;//Y保存最小的下标ch( &a[x], &a[y]);//交换最大最小两个数的位置for(i=0;i&10;i++) printf(&%d,&,a[i]);//输出处理后的数组}
给你贴个卷子,供你参考:
一、单项选择题 1.函数调用语句:fseek(fp,-20L,2);的含义是( )。A)将文件位置指针移到距离文件头20个字节处
B)将文件位置指针从当前位置向后移动20个字节
C)将文件位置指针从文件末尾处后退20个字节
D)将文件位置指针移到距离当前位置20个字节处
2.C语言规定,函数返回值的类型是由( )。A)return语句中的表达式类型所决定
B)调用该函数时的主调函数类型所决定
C)调用该函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
3.下列转义字符不正确的是( )。A)’\\’
B)’\ab’
C)’\083’
4.C语言中运算对象必须是整型的运算符是( )。A)/
5.下列选项中属于不正确的赋值语句的是( )。A)t--;
B)k=i==j...
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁#include&stdio.h& void main() { int a,b; float x,y; char c1,c2; scanf(&a=%d b=%d&,&a,&b); scanf(&%f_百度知道
#include&stdio.h& void main() { int a,b; float x,y; char c1,c2; scanf(&a=%d b=%d&,&a,&b); scanf(&%f
#include&stdio.h&void main(){ int a,b; float x,y; char c1,c2; scanf(&a=%d b=%d&,&a,&b); scanf(&%f%e&,&x,&y); scanf(&%c%c&,&c1,&c2); printf(%d%d%f%f%c%c);}老运行不正常 请 大侠知道错误 提示如下Compiling...lianxi1-3.cppe:\c程序源码文件包\lianxi1-3.cpp(10) : error C2143: syntax error : missing ')' before '%'e:\c程序源码文件包\lianxi1-3.cpp(10) : error C2660: 'printf' : function does not take 0 parameterse:\c程序源码文件包\lianxi1-3.cpp(10) : error C2065: 'd' : undeclared identifiere:\c程序源码文件包\lianxi1-3.穿埂扁忌壮涣憋惟铂隶cpp(10) : error C2065: 'f' : undeclared identifiere:\c程序源码文件包\lianxi1-3.cpp(10) : error C2065: 'c' : undeclared identifiere:\c程序源码文件包\lianxi1-3.cpp(10) : error C2059: syntax error : ')'Error executing cl.exe.
提问者采纳
#include&stdio.h&void main(){ int a,b; float x,y; char c1,c2; scanf(&a=%d b=%d&,&a,&b); scanf(&%f%f&,&x,&y); scanf(&%c%c&,&c1,&c2); printf(&%d,%d\n%f,%f\n%c,%c\n&,a,b,x,y,c1,c2);}
其他类似问题
为您推荐:
其他5条回答
#include&stdio.h&int main(){ int a,b; float x,y; char c1,c2; scanf(&%d%d&,&a,&b);//不要添加多余字符
scanf(&%f%f&,&x,&y);//float类型用%f getchar();
// 添加此句接收上一句按下的回车符
scanf(&%c%c&,&c1,&c2);//输入这两字符时需连在一起 输入
printf(&%d
%d\n%f
%f\n%c
%c\n&,a,b,x,y,c1,c2);//格式不对,缺输出参数 }
printf(%d%d%f%f%c%c);改成 printf(&%d%d%f%f%c%c&);双引号 掉了
&printf(%d%d%f%f%c%c);&输出格式错误,缺少输出地址标识符。!
就算加上引号printf好像也不输出东西吧,没输出的变量名称啊
不光掉了双引号,还要指明变量printf(&%d&,x);
scanf的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁#include&stdio.h& main () { int x=10,y=10,i; for (i=0;x&8;y=++i) printf (&%d%d&,x--,y); }_百度知道
#include&stdio.h& main () { int x=10,y=10,i; for (i=0;x&8;y=++i) printf (&%d%d&,x--,y); }
为什么输出10 10 后还要输出9 1
提问者采纳
x--for (i=0;%d%d&x&y=++i) printf (&8;,y),执行y=++i; 输出10 10 之后 x变成了9,y变成了1x=9 是大于8的 for循环条件成立因此还要输出9 1之后x变成8了
提问者评价
来自团队:
其他类似问题
为您推荐:
其他1条回答
y=10,y)#include&lt.;stdio,3444y=10x&gt,x--;
for (i=0.h&第一次循环;/x&y=++i)
printf (&%d%d&quot,循环前;;这个循环执行2次,x=10;void main () {
int x=10,i; }
printf的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁同济C++课后实验答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
同济C++课后实验答案
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩32页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 stdio.h 的文章

 

随机推荐