int main(){
int i,n,a[4]={30,25,41,102}
char s[5][10]={"apple","pear","orange","grape","exit"}
for(i=0i<5i++) printf("[%d] %s\n",(i+1)%5,s[i])
for(i=0i<5i++){
scanf("%d",&n)
if(!n){break}
else if(n>0&&n<5){printf("price=%.2f\n",a[n-1]/10.0)}
}
return 0
}
[willie@bogon zhidao]$ gcc shuiguo.c -o shuiguo.o
[willie@bogon zhidao]$ ./shuiguo.o
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
1
price=3.00
2
price=2.50
3
price=4.10
4
price=10.20
5
#include<stdio.h>int main(void){
int i,x,n
float a=3.0,p=2.5,o=4.1,g=10.2
printf("Enter choice: ")
scanf("%d",&x)
for(i=1i++){
switch(x)
{case 0:break
case 1:
printf("price=%.1f\n",a)
printf("Enter choice:")
scanf("%d",&x)
break
case 2:
printf("price=%.1f\n",p)
printf("Enter choice: ")
scanf("%d",&x)
break
case 3:
printf("price=%.1f\n",o)
printf("Enter choice: ")
scanf("%d",&x)
break
case 4:
printf("price=%.1f\n",g)
printf("Enter choice: ")
scanf("%d",&x)
break
default:
printf("price=0\n")
printf("Enter choice: ")
scanf("%d",&x)}
n++
if(n==6){
printf("Thank you!")
break}
}
return 0
}
程序基本没有问题啊。我修改优化了一下,代码如下:
#include<stdio.h>int main(void)
{
int choice,i
//double price // 这里不用price了,优化掉了
for(i=1i<=5i++)
{
printf("[1]apples \n")
printf("[2]pears \n")
printf("[3]oranges \n")
printf("[4]grapes \n")
printf("[0]exit \n")
printf("Enter choice: ")
scanf("%d",&choice)
if(choice==0) break
switch(choice)
{
case 1: printf("[1]apple price=3.0\n\n") // 直接将结果显示出来了,无需price中转,也不用在后面去写if else语句了。
break
case 2: printf("[2]pears price=2.5\n\n")
break
case 3: printf("[3]oranges price=4.1\n\n")
break
case 4: printf("[4]grapes price=10.2\n\n")
break //后面的defalut ,可以不要了。因为不是这里面的水果,根本就不用显示。
}
}
printf("Thanks \n")
return 0
}