为了账号安全,请及时绑定邮箱和手机立即绑定

输出结果第二个数报错

为什么输出的是90,25775849394

而不是90,98呀?


#include<stdio.h>


struct Student

{

    int math;

    int English;

};


int main()

{

    struct Student s[50];

    s[49].math=90;

    s[49].English=98;

    printf("%d,%d\n",s[49]);

    return 0;

}


正在回答

2 回答

c++是没有print的!你应该是学过python的,python用的是print;而c++用的是cout。

如果想要运行,printf("%d,%d\n",s[49]);应该改为:

cout << s[49];或 cout << s[49] << endl; 或cout << s[49] << " ";

第一个是语句结束没有任何其它内容,第二个是语句结束后换行,最后一个是空格

1 回复 有任何疑惑可以回复我~
#1

qq_幕布斯0275743

c++也是可以用printf的
2023-12-07 回复 有任何疑惑可以回复我~
//你的输出错误了,s[49]是Student这个结构体,而不是里面数据的值
//第一个输出结果是90,是因为取址在这个结构体的开头,也就是s[49].math这个4字节内存的地址
//虽然这可以获取math的数值但是你应该使用s[49].math来保证代码鲁棒性更高(不容易出bug)
//你第一个%d对应的是math的值,第二次%d却没有对应,所以第二次输出也就是垃圾数据了(毫无意义的一串数据)
//你应该这样,前一个%d对应s[49].math,后一个对应s[49].English
printf("%d,%d\n",s[49].math,s[49].English);


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

输出结果第二个数报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信