c语言! 求助~~~

下列程序的功能为:程序运行后的结果是0 1 1 8,请填写适当的符号或语句,使程序实现其功能,程序以文件名A6T2.c存盘。
void main()
{
char s[]="12345678"; int v[4]={0,1,1,0},k,i;
for (k=0; s[k];k++)
{
switch ( )
{
case'1': i=0;
case'2': i=1;
case'3': i=2;
case'4': i=3;
}
;
}
for(k=0;k<4;k++) printf("%d ", );
}

既然你程序编译没问题,运行结果也没问题,那你这个程序就没什么错误啊。论逻辑上,你这个算法也很合理,虽然不是最优算法。
有一个小技巧可以改进,那就是第二重循环的时候,k不用循环到i,只需要循环到sqrt(i)也就是
根号i
就行了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-22
#include <stdio.h>
void main()
{
char s[]="12345678"; int v[4]={0,1,1,0},k,i;
for (k=0; s[k];k++)
{
switch ( s[k] )
{
case'1': i=0;
case'2': i=1;
case'3': i=2;
case'4': i=3;
}
v[i]=s[k]-'0';
}
for(k=0;k<4;k++) printf("%d ", v[k] );
}本回答被提问者采纳
第2个回答  2019-05-20
您好,SA团队给出的答案
小弟也不知道是哪错了,您确定您要使用的是++i而不是i++吗?
第3个回答  2019-06-27
scanf("要输入工程师的信息吗?(y或n):%c",&a);
scanf()输入格式.
你这样写,在输入时就要按照scanf里面的格式输入:要输入工程师的信息吗?(y或n):y
才行.
换成下面这样比较好:
printf("要输入工程师的信息吗?(y或n):");
scanf("%c",&a);
第4个回答  2020-01-01
#include
<stdio.h>
void
main()
{
int
a[100],j,i,s,total=49,t;
for(i=0;i<100;i++)a[i]=i+1;
scanf("%d
%d",&total,&s);
total--;
t=0;
while
(total!=0)
{
for(j=1;j<s;j++)
{t++;
t%=total+1;
}
for(j=t;j<total;j++)a[j]=a[j+1];
total--;
}
printf("%d",a[0]);
getch();
}
这就是答案了
自己可以改的
输入没有提示的
相似回答