李明新概念c语言
A. c语言里fscanf是如何处理%c与%s的
fscanf和scanf一样,只是前者一般从文件中读数据,后者从输入缓冲区读数据。在scanf中,%c只读取一个字符,%s是读取一个字符串——这时会跳过前面的' '、'\t'、'\n'等广义空格直接接收字符,一个接一个地把接收到的字符依次赋给对应的数组元素,当再次遇到' '、'\t'、'\n'等广义空格时认为字符接收完毕,就在刚被赋值的元素后增补一个'\0'以表示本次接收的字符串结束。fscanf的接收过程与此完全一样,只是是从它的第一个文件指针实参指向的文件中读取的;若把fscanf的第一个实参换成stdin(标准输入),它就和scanf一样从键盘读入数据了。
B. c语言输出%02和%2.0f都是什么意思啊,还有100310121,李明,M,1991/05/19,72,83,90,82~为了得到这些内容
%10ld指的是以双精度输出数据其占十个单位,%8s指的是以字符串型输出数据且占8个单位,%3c指的是以字符型输出数据且前两位是空格,%6d指的是以整形数输出数据且占6个单位,%02d指的是以整形数输出数据湛亮个单位但是多余的空格补在数据后。
说实话你这问题我没太看懂
C. 求c语言编程:结构体
struct stu{
int num;
char name[10];
char sex;
int age;
int score[3];
int sum;
double ave;
}STU[10]={{203212022,'李明','f',21,87,96,92,85}};
D. C语言编程……
#include"stdio.h"
#include"string.h"
int main()
{
char name[4][15];
int i,j;
float score[3][7];
for(i=0;i<3;i++)
{
printf("enter a student name and five cuase score(english computer stat politics C):\n");
scanf("%s%f%f%f%f%f",name[i],&score[i][0],&score[i][1],&score[i][2],&score[i][3],&score[i][4]);
score[i][6]=0;
for(j=0;j<5;j++)
score[i][6]=score[i][j];
score[i][5]=score[i][6]/5;
if(score[i][6]>=420)
{
puts(name[i]);
for(j=0;j<7;j++)
printf("%.2f\t",score[i][j]);
printf("\n");
}
}
printf("enter you want find name :");
scanf(name[3]);
for(i=0;i<3;i++)
if(strcmp(name[i],name[3])==0)
printf("English score : %.2f\n",score[i][0]);
}
E. c语言如何用getchar分别输入两个字符
在a=getchar();后面加一个getchar();吸收多余的回车
#include<stdio.h>
void main()
{
char a,b;
printf("大家好,我叫李明!\n");
printf("我姓名的第一个字符是:");
a=getchar();getchar();
printf("");
printf("我姓名的第二个字符是:");
b=getchar();getchar();
printf("\n你输入的两个字符分别是:");
putchar(a);
printf("、");
putchar(b);
}
这样就好了
望采纳,谢谢
F. C语言跪求大神、
不是我不回答你,是这里压根写不下这么多代码。要不私聊帮你写了。
G. 为什么C语言中把一个数组传入函数中,在函数调用的时候只写数组名
例子int
num[3]
=
{10,
20,
30}
在内存是这样存储的
num
0000000a,00000014,0000001e
//16进制形式
你给起始地址函数,那函数就指向了num的地址,int规定了他是16位的,所以引用的时候,就可以按顺序引用了。
传入函数大多都有一个范围值,以确定作用数组多少元素,以上例子数3。
H. 为什么李明的c语言视频教程只有unit 1部分,没有后面部分呢
←← 我喜欢你上我,喜欢在厨房 阳台 洗衣机旁 勾搭 勾搭
I. C语言结构体的小问题
typedef struct
{int n;
char ch[8];
}PER;
的意思就是将这个结构体定义成为 一个叫 PER的类型
如 typedef int Elem 就是将int 定义成为 Elem 类型
程序实例:
#include <stdio.h>
typedef struct
{int n;
char ch[8];
}PER;
void main()
{
PER a;
gets(a.ch);
scanf("%d",&a.n);
puts(a.ch);
printf("%d\n",a.n);
}
当然如果你不用typedef关键字也可以,就是多写一定,用就更简洁
程序实例:
#include <stdio.h>
struct A
{int n;
char ch[8];
};
void main()
{
struct A a; //就是 等于 PER 这样就要写 struct A 相对麻烦点而已
gets(a.ch);
scanf("%d",&a.n);
puts(a.ch);
printf("%d\n",a.n);
}
这里一定要用有名结构体,因为之前你定义的结构体 成为一个新类型,而这里如果没有名字,编译器是不知道你是想访问哪一个结构体的
J. C语言新手弱弱的问下我下面这个程序,只能输入数字结束运行,怎么能让它输入字母或者输入标点符号结束呢
修改了一下你的程序代码,你再试试
void main()
{
for(;;){
//int i,sum;
int i,sum=0; //给个初值0,当输入数据为无效数据时,退出!原因见下面说明
//变量在不赋初值时,默认的是个随机数,多数情况下是0,但也有非零的情况
struct stu man[4]={
{1,"李明",78,98},
{2,"张平",38,95},
{3,"王军",59,78},
{4,"何凡",67,84}
};
printf("请输要查找的学号1到4:");
scanf("%d",&sum);//scanf在输入非数字数据时,不会改变sum的值
//while(sum<0 || sum>4) 这里用while虽然不出错,但意义却不对,要正确使用控制语句
if(sum<1 || sum>4) //你的选项是1-4有效,就要检查输入数据是否在1-4之间,其他无效退出。
{
printf("输入错误,程序结束\n");
exit(0);
}
for(i=0;i<4;i++){
if (sum==man[i].num){
printf("学号\t姓名\t数学\t语文\n");
printf("%d\t%s\t%d\t%d\n",man[i].num,man[i].name,man[i].yu,man[i].shu);}
}
}
}