李明新概念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);}
}
}
}