回 帖 发 新 帖 刷新版面

主题:小程序报错

在编程序的时候拿下面的小程序测试了一下,但是能通过编译,运行时总是抱错,高手帮忙看一下,谢谢
#include <stdio.h>

#include<string.h>
int main()
{
    int minute,second;
    char name,tempName,action[10];

scanf("%d:%d %c %5s %c",&minute,&second,name,action,tempName);
printf("%d:%d %c %5s %c",&minute,&second,name,action,tempName);
}
我在键盘上输入1:30 a kills c回车的时候就报错,不知道哪里问题

回复列表 (共6个回复)

沙发

除ACTION外,全加&

板凳

在scanf中除action不要加&(因为action已经是数组的地址,不用&来取址)
printf中全都不要&
你最好还是先弄懂&运算符的作用

3 楼

用scanf读入数据时,只有字符串的读入不需要加&,其他数据类型的读入都要加上&。ps:复合数据类型需要逐个输入,不能整体赋值

4 楼


谢谢以上热心人,我已经意识到了,但是改了以后我输入以后还是不能输出,不知道怎么回事

5 楼

#include <stdio.h>

int main()
{
    int minute,second;
    char name,tempName,action[10];
    
    scanf("%d:%d %c %5s %c",&minute,&second,&name,action,&tempName);
    printf("%d:%d %c %5s %c",minute,second,name,action,tempName);
    return 0;
}
初学者容易犯的错啊。慢慢的会好的。都没有用到#include <string.h>这个库函数,加了也没用。

6 楼

输出字符时应用printf("%s",name);不能用%c,用%c只能输出一个字符,不能输出字符串

我来回复

您尚未登录,请登录后再回复。点此登录或注册