1樓:cz翡翠情緣
#include
struct date
int year;
int month;
int day;
struct student
char name[30];
int num;
char ***;
struct date birthday;
}student[2];
int main()
int i;
printf("input student's name num *** birthday\n");
for(i=0;i<2;i++)
day); //注意第一個不用&,因為它是字元陣列
for(i=0;i<2;i++)
printf("-------------information----------------\n");
printf("name : %s\n", student[i].name);
printf("student number: %d\n", student[i].num);
printf("***: %c\n", student[i].***);
printf("birthday: %d %d %d\n", student[i].birthday.
year, student[i].birthday.month, student[i].
birthday.day);
return 0;
2樓:滄海雄風
for(i=0;i<10;i++) //10 這個明顯放不下 你的student[2]; 怎麼放下
去掉
3樓:紫英落
這句錯了,%s是字串型別,輸入時不用加&,所以應該寫為 scanf("%s",student[i].name);還有就是\n不用寫的,scanf讀到回車符直接停止。
4樓:東方蒼神
使用的時候%s作為佔位符遇見空白字元(空格、換行符、和製表符),就停止掃描。當你輸入姓名li xiao gang時將分別賦給student[i].
因此輸入姓名時最好使用gets()函式。
再一個你定義的student[2]陣列元素少,會溢位,不定會出現什麼錯。輸入的時候最好是一個printf對應一個輸入,不然不好控制格式。
關於c語言中用scanf函式如何輸入資料的問題
5樓:匿名使用者
如果scanf中%d是連著寫的如「%d%d%d」,在輸入資料時,資料之間不可以加逗號,只能是空格或tab鍵或專者回車鍵——「2 3 4」
「2(按
屬tab)3(按tab)4(按tab)」。
若是「%d,%d,%d」,則在輸入資料時需要加「,」——「2,3,4」.
在輸入多個數值資料時,若格式控制串中沒有非格式字元作輸入資料之間的間隔,則可用空格,tab或回車作間隔。 c編譯在碰到空格,tab,回車或非法資料(如對「%d」輸入「12a」時,a即為非法資料)時即認為該資料結束。
6樓:匿名使用者
你的scanf("%c%c,&c1,&c2")寫錯了
應該是scanf("%c%c",&c1,&c2)
c語言關於字串用scanf輸入的問題
7樓:home氣昂昂
如果第一個是輸入%s 第二個輸入一個%c
那麼由於 回車'鍵'在windows系統中用"\n\r"兩個字元表示,所以由於scanf讀入的問題只接受一個以字元就會多餘一個,而這個多餘的就會被下一個輸入字元所接受,所以才未輸入就結束了。
這是在兩個輸入之間加入getchar()即可接受這個多餘的字元。或者把輸入字串改為gets(str)。
c語言scanf無法輸入值,關於C語言中用scanf函式如何輸入資料的問題
樂跑小子 scanf 是c語言標準庫中的輸入函式,宣告包含在stdio.h檔案中,因此要使用該函式,必須載入 include標頭檔案。當執行到scanf函式時,程式就暫停等待使用者輸入,該函式只接受變數的地址,格式為 變數名。是一個阻塞式的函式,等使用者輸入完畢後,則將值賦值給變數,至此函式呼叫完畢...
c語言scanf輸入時可以加逗號的嗎
你不愛吃烤肉 可以,但是輸入資料的時候一定也要加上逗號。用scanf 讀取資料時,輸入的格式必須和scanf 的格式控制字串對應,比如說 1 scanf d,d a,b 因為兩個 d之間有一個逗號,所以在輸入時兩個整數之間只能用逗號分隔,如果用其它符號分隔就會出錯 比如說此時用空格 回車分隔就會出錯...
關於C語言中scanf和printf函式
輸入結果要看你 定義的變數 year 和 code 的 型別,決定,1,int year char code scanf d c year,code printf d c year,code 列印結果 1998和逗號 c 只能接受耽擱字元你輸入的是1998,r 所以 code 裡面鋤從了逗號 而沒有...