
#include <stdio.h> void main() {int i=0,j=0,k=0; scanf ("%d%*d%d",&i,&j,&k); printf("%d%d%d",i,j,k)
#include<stdio.h>voidmain(){inti=0,j=0,k=0;scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d",...
#include <stdio.h>
void main()
{int i=0,j=0,k=0;
scanf ("%d%*d%d",&i,&j,&k);
printf("%d%d%d",i,j,k);
} 程序运行时,若从键盘输入:10 20 30<回车>,输出的结果是
主要详细解释一下scanf中有*对输出结果的影响。 展开
void main()
{int i=0,j=0,k=0;
scanf ("%d%*d%d",&i,&j,&k);
printf("%d%d%d",i,j,k);
} 程序运行时,若从键盘输入:10 20 30<回车>,输出的结果是
主要详细解释一下scanf中有*对输出结果的影响。 展开
3个回答
展开全部
输出结果为10 30 0
因为%*d表示跳过输入的一个整数,所以j是得不到你输入的20,他获取的是30
,而最后的K因为是赋初值了,所以可以不用输入
结果相当于是你只输入了10 30
因此当你输入10 20 30时,i的值为10,j的值为30,k的值为0
因为%*d表示跳过输入的一个整数,所以j是得不到你输入的20,他获取的是30
,而最后的K因为是赋初值了,所以可以不用输入
结果相当于是你只输入了10 30
因此当你输入10 20 30时,i的值为10,j的值为30,k的值为0
追问
#include
void f(char *p[], int n)
{ char *t; int i,j;
for(i=0; i0){ t=p[i]; p[i]=p[j]; p[j]=t; }
}
main()
{ char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p, 5);
printf("%d\n", strlen(p[1]));
}
程序运行后的输出的结果是。主要分析下怎么得到结果。因为你们两个答得都很好,这一题谁答得好分给谁。谢谢!
追答
运行结果为:4
当i=0时,j就循环4次,也就是说p[0]和后边的分别比较,当p[0]>p[1]时将p[0],p[1]进行交换,如:"abc","aabdfg",因为b>a因此交换,此时p[0]就是aabdfg,p[1]就是abc,然后p[0]与p[2],p[3],p[4]比较,最后p[0]就是这个数组中最小的字符串,然后当i=1时,p[1]与后边的在次比较找到最小的,以此类推,最后数组中的结果为:
p[5]={"aabdfg","abbd","abc","cd","dcdbe"}
因此你p[1]就是4个字符
所以最后输出结果为:4
展开全部
scanf ("%d%*d%d",&i,&j,&k); //%*d表示跳过一个输入的值,因此输入10 20 30<回车>时,i得到10,20跳过,j得到30,k没有得到值,还是原来的0。
运行结果如下:
10300
运行结果如下:
10300
追问
#include
void f(char *p[], int n)
{ char *t; int i,j;
for(i=0; i0){ t=p[i]; p[i]=p[j]; p[j]=t; }
}
main()
{ char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p, 5);
printf("%d\n", strlen(p[1]));
}
程序运行后的输出的结果是。主要分析下怎么得到结果。因为你们两个答得都很好,这一题谁答得好分给谁。谢谢!
追答
运行结果是:
4
分析:
f(p, 5); //这个函数对5个字符串指针根据所指字符串由小到大排序,使p[1]指向"abbd"。
printf("%d\n", strlen(p[1])); //"abbd"的长度为4。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结果为10300,%*d中*的影响是对应的输入项在读入后不赋给相应的变量、也就是说你输入的第二个数20被跳过、未赋值给j、而后一个数30赋值给了j。k未进行赋值、仍为初始化状态0;
所以结果为10300
所以结果为10300
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询