❶ c語言用scanf給數組賦值問題
可以參考下面的代碼:
#include <stdio.h>
int main()
{
int a[3][2], i, m;
for (i = 0; i < 3; i++)
{
for (m=0;m<2;m++)
scanf("%d", &a[i][m]);
for (i = 0; i < 3; i++)
{
for (m=0;m<2;m++)
printf("%d ", a[i][m]);
}
return 0;
}
(1)c語言scanf給字元賦值擴展閱讀:
函數原型
intscanf(constchar*restrictformat,...);
函數 scanf() 是從標准輸入流stdin(標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
函數的第一個參數是格式字元串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的信息並存儲於可變參數列表中對應的指針所指位置。每一個指針要求非空,並且與字元串中的格式符一一順次對應。
❷ c語言給單個字元賦值
從鍵盤輸入給字元賦值
char
ch;
scanf("%c",&ch);
上述語句就是從鍵盤輸入給字元變數ch賦值
❸ C語言中,不能用scanf()函數輸入字元串後賦給字元型指針變數具體請看下面代碼中的注釋。謝謝!
指針必須指向某一定義好的元素,你定義指針後,是不直接分給指針內存的,你的輸入語句,系統根本不知道該把值放到哪裡,讓指針指向某一變數,這樣就不會報錯了
❹ C語言中 為什麼用scanf在給 數組和字元數組賦值是 數組要加& 而字元串卻不加&
可以從scanf函數的函數原型來進行解釋。
函數原型:int scanf(char *format, args, ...);
功 能:從標准輸入設備按format指定的輸入格式將數據輸入到args所指向的內存單元
返 回 值:讀入並賦給args的數據個數。遇文件結束返回EOF,出錯返回0
從scanf函數的函數原型可以看出,scanf接收到的數據是賦給args指向的內存單元的,也即args是一個內存地址,而變數的內存地址用取地址符&來表示,數組的地址就是數組名。所以數組的前面不用加&
舉例如下:
inta;//定義一個變數
charb[3];//定義一個字元數組
char*str=(char*)malloc(sizeof(char)*4);//定義字元串並分配內存單元
scanf("%d%d%s",&a,b,str);//變數a的地址為&a,數組b的地址為數組名b,字元串的地址為str
❺ C語言問題,scanf和直接賦值的問題
代碼亂死了.大概看了一下.用char*來保存字元串必須得是在定義的時候給上值,如果不給,這就是一個字元指針.如果給了,那也只是給定了一個*只讀*的字元串,所以在寫代碼的時候最好不要這樣(除非有用)如果用了就要這樣寫:const char *p = "String";這樣如果改動它的內容就會報錯.
所以要用定義字元指針的方法去保存字元串,就得用malloc或new(C++)去動態申請內存空間.想知道更多的話,,,,把扣扣摞下吧,扣扣語音教.
❻ C語言中,可以使用scanf函數將字元賦值給整型變數嗎,我試過了但是不行
#include<stdio.h>
main()
{
int a;
printf("%d\n",a);//a未初始化,會有個未知值
scanf("%d",&a); //輸入'a',屬於輸入錯誤,a未被賦任何值,還是當前的未知值,輸入字元,用%c,輸入格式不需要'a',僅用a即可
printf("%d\n",a);
}
❼ C語言中用scanf和循環語句是怎麼給字元串賦值,然後用printf輸出該字元串求個例子(O_
inti;
inta[10]={0};
for(i=0;i<10,i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
這是輸入數字的,要輸入字母的話,可以把a[10]定義為char型
❽ c語言中為什麼用scanf()給已用字元串初始化的指針變數賦值會出錯
用P=「abcd」意味著把 字元串的地址賦給了 指針變數P
應該不能直接賦值吧。。只能存地址