簡體   English   中英

在結構中動態輸入值並打印這些值

[英]Dynamically inputting values in a structure and printing these values

我為結構螺柱編寫了此代碼,該代碼將輸入要存儲其記錄的學生人數,然后將其打印出來。 我不確定我到底哪里出錯了。

#include<stdio.h>
struct stud{
int id;
char name[50];
float points;
}s[1000];

int main(){

     int i,n;
     scanf("%d",&n);

     for(int i=0;i<n;i++){
         scanf("%d",&s[i].id);
         scanf("%c",s[i].name);
         scanf("%f",&s[i].points);
        }
       
       for(i=0;i<n;i++){
           printf("ID: %d\n",s[i].id);
           printf("First Name: %c\n",s[i].name);
           printf("Points: %f\n",s[i].points);
        }

       return 0;
 }

改變

 scanf("%c",s[i].name);

至少

 scanf("%49s",s[i].name);

printf()調用也是如此。 %c用於單個char ,對於字符串,您需要%s 另外,不要忘記檢查scanf()的返回值是否成功。

話雖如此,最好使用fgets()進行用戶輸入。 就像是

  if( fgets (s[i].name, sizeof(s[i].name), stdin) != NULL ) { /*......*/ }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM