c语言中char的%s与%c的输出,例题分析

c语言中char的%s与%c的输出,例题分析,第1张

#include<stdio.h>

#define N 3

struct student{

int num

char name[6]

char sex[5]

int age

double 激颤洞grade

}

struct student 明枯stu[N]

int main()

{

struct student *point[N]

int 洞绝i

for(i=0i<Ni++)

{ point[i]=&stu[i] }

for(i=0i<Ni++)

{ scanf("%d%s%s%d%ld",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].age,&stu[i].grade) }

printf("学号   姓名   性别   年龄   成绩\n")

for(i=0i<Ni++)

{ printf("%d\t%s\t%s\t%d\t%ld",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].grade)

printf("\n")

}

return 0

}

你好!

你的两个变量的类型不统一,所以没有输出;

将 int n改成 char n 变成字符类型

后的 %d 改成 %c   接收字符输入

修改态备后的完整代码:

#include<stdio.h>

#include<stdlib.h>

int main(){

char n

scanf("%c",&n)

if(n=='帆掘毁a')

printf("good")

system("pause")

return 0

}

如果你想让刚才的程序能执行,要输入 a 的ASC 码才行,散搜就是输入 97,你可以试试

该题选择D答案:

1、a定义的是char型,实际上他也可以看做是int型,你试过没有将一个char型的变量用%d的格式输出后,为一个整数,该整数是该字符的ASCII码,是十进制而已。所逗迹以a*c之后的类型为float型

2、a*c+c自然也就是float型了。。那么最后就变为float减去一个double型,因为double型表示的数值精度比较高,那山行并么自然结果也就转换成了double型了,你要明白类型的转换实际上可带逗以看做为数据在内存的对齐。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12448047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存