注册 登录
编程论坛 C++教室

谢谢各位大哥大姐,帮忙找下哪里错了?

w天然呆x 发布于 2013-04-20 23:45, 1241 次点击
#include<stdio.h>
main()
{
    float score;
    int s,t;
    scanf("%d",&score);
    t=score*10;
    s=t%100;
    printf("your grade:");
    switch(s)
    {
    case 10:
    case 9:printf("A\n");break;
    case 8:printf("B\n");break;
    case 7:printf("C\n");break;
    case 6:printf("D\n");break;
    case 5:
    case 4:
    case 3:
    case 2:
    case 1:
    case 0:printf("E\n");break;
    default:printf("enter data error!\n");
    }
    return 0;
}
12 回复
#2
子楠2013-04-21 00:05
scanf("%d",&score);
这错了应该是scanf("%f",&score);
细心点
#3
马小柯2013-04-21 00:29
#include<stdio.h>
 main()
 {
     float score;
     int s,t;  
     printf("your grade:");
     scanf("%f",&score);
     t=score*10;
     s=t/100;
     switch(s)
     {
     case 10:
     case 9:printf("A\n");break;
     case 8:printf("B\n");break;
     case 7:printf("C\n");break;
     case 6:printf("D\n");break;
     case 5:
     case 4:
     case 3:
     case 2:
     case 1:
     case 0:printf("E\n");break;
     default:printf("enter data error!\n");
     }
     return 0;
 }
#4
w天然呆x2013-04-21 10:32
谢谢子楠,还有马小柯,我试了一下,两个错误不改都不行!
#5
子楠2013-04-21 12:28
float score;
     int s;  
     printf("your grade:");
     scanf("%f",&score);
     s=score/10;
可以直接这样的。昨天忘记打了
#6
谢跃锋2013-04-21 13:52
其实我是这样改的。。。#include<stdio.h>
 main()
 {
     int score,s;
     scanf("%d",&score);
     s=score/10;
     printf("your grade:");
     switch(s)
     {
     case 10:
     case 9:printf("A\n");break;
     case 8:printf("B\n");break;
     case 7:printf("C\n");break;
     case 6:printf("D\n");break;
     case 5:
     case 4:
     case 3:
     case 2:
     case 1:
     case 0:printf("E\n");break;
     default:printf("enter data error!\n");
     }
     return 0;
 }
#7
风雨1232013-04-21 16:54
应该  int   main  你要把题目发来
#8
唐朝果冻2013-04-25 13:37
   真厉害
#9
邓士林2013-04-25 18:42
你的主函数类型都没有,然后给一个返回值,系统肯定会出错,一般c语言中要求main函数可以为无类型,而c++中则要求要有类型,由于c++对c的兼容以及编译器相同,所以有无都可以,但是格式要对,细心点哦!
#10
小王子的花2013-04-26 14:43
你求整和求余弄反了
/是求整
%是求余
#11
风雨1232013-04-26 19:29
你应该把题目贴上
float score;
     int s;  
     printf("your grade:");
     scanf("%f",&score);
     s=score/10;
。。。。。
#12
w天然呆x2013-04-28 13:31
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar pro_left,pro_right,i=0,j=0,u,v;
uintq,b;
sbit a=P2^4;
sbit left1=P2^0;
sbit left2=P2^1;
sbit right1=P2^2;
sbit right2=P2^3;
sbit left_red1=P1^2;
sbit left_red2=P1^3;
sbit right_red1=P1^5;
sbit right_red2=P1^7;
uint temp1=0;
uint temp2=0;
uint temp3=0;
uint temp4=0;
void delay(uintz)
{
    uchar k;
    while(z--)
    {for(k=o;k<121;k++);}
}
void int()
{
    left_red1=1;
    left_red2=1;
    right_red1=1;
    right_red2=1;
    TMOD=0x01;
    TH0=(65536-1000)/256;
    TH0=(65536-1000)%256;
    EA=1;
    ET0=1;
    TR0=1;
    left1=0;
    left2=1;
    right1=1;
    right2=0;
}
void time0(void)interrupt1
{
    i++;
    j++;
    TH0=(65536-1000)/256;
    TL0=(65536-1000)%256;
}
void straight()
{
    pro_right=39;
    pro_left=39;
    temp1=0;
    temp2=1;
    temp3=1;
    temp4=0;
}
void turn_left2()
{
    pro_right=39;
    pro_left=0;
    temp1=0;
    temp2=1;
    temp3=1;
    temp4=0;
    u=50000;
    v=400;
}
void turn_left1()
{
    pro_right=39;
    pro_left=0;
    temp1=0;
    temp2=1;
    temp3=1;
    temp4=0;
}
void turn_left3()
{
    pro_right=39;
    pro_left=9;
    temp1=0;
    temp2=1;
    temp3=1;
    temp4=0;
}
void turn_right2()
{
    pro_right=0;
    pro_left=39;
    temp1=0;
    temp2=1;
    temp3=1;
    temp4=0;
    u=50000;
    v=400;
}
void turn_right1()
{
    pro_right=0;
    pro_left=39;
    temp1=0;
    temp2=1;
    temp3=1;
    temp4=0;
}
void turn_right3()
pro_right=9;
pro_left=39;
temp1=0;
temp2=1;
temp3=1;
temp4=0;
}
void turn_back()
{
    temp1=0;
    temp2=0;
    temp3=0;
    temp4=1;
    pro_right=39;
    pro_left=39;
}
void infrared()
{
    uchar flag;
    if(left_red1==0&&left_red2==0&&right_red1=0&&right_red2=0)straight();
    else
        if(left_red1==0&&left_red2==0)turn_left1();
        else
            if(right_red1==0&&right_red2==0)turn_right1();
            else
                if(left_red1==0)turn_left3();
                else
                    if(right_red1==0)turn_right3();
                    else
                        if(left_red2==0)turn_left1();
                        else
                            if(right_red2==0)turn_right1();
                            else
                                straight();
}
uint w;
void main(void)
{
    q=0;
    b=0;
    left2=0;
    right1=0;
    while(a==1)
    {
    }
    for(q=0;q<8;q++)//我怀疑这地方出错了//
        for(b=0;b<20000;b++)
        {
        }
        int();
        delay(100);
        i=0;
        j=0;
        u=0;
        v=0;
        pro_left=39;
        pro_right=39;
        while(1)
        {
            infrared();
            if(i>=pro_left){left1=0;left2=0;}
            if(i==40){left1=temp1;left2=temp2;i=0;}
            if(j>=pro_right){right1=0;right2=0;}
            if(j==40){right1=temp3;right2=temp4;j=0;}
        }
}
void int0(void)interrupt 0
{
}
牛人好多再帮忙看下这个又是错在哪儿呢?
#13
w天然呆x2013-05-10 15:16
我想中断25次才执行一次取反函数,这样行不行?求大神指导
#include<AT89X52.H>
#include<stdio.h>
void initial(void);
int n,counter=0;
  
void main()
{
  counter++;
  n=counter/25;
  initial();
  while(1);
}
void initial()//串口初始化函数
{
  IE=0x82;
  TCON=0x00;
  TMOD=0x01;
  TH0=0xD8;// 高。可通过改变低、高八位所赋的初值来改变中断的周期
  TL0=0xF0;//低
  TR0=1;
}
void TIMER(void)interrupt 1
{
  
  while(n)
  {
    P1_0=~P1_0;
  }
}
/*程序大意是用定时器0每1毫秒中断一次,中断子程序取反,引脚本来是1变0,本来是0变1,所以若是LED的话,闪烁周期是2毫秒 */

  
1